前位置: 主頁 > 吉林企業新聞網 > 新聞 > 正文

全國首站:哈爾濱自己的物聯網+服務中心—招商融資項目

來源: 未知  2015-08-17 吉林企業新聞網
    項目屬自主研發人韓麗創新研發的自有品牌項目。韓麗是黑龍江哈爾濱市土生土長的東北女孩。對于在一線城市發展多年后,看見南方的城市人才濟濟,經濟迅猛增長,而家鄉父老守著哈爾濱工業大學,哈爾濱理工大學等頂級理工學科院校,卻留不住人才發展家鄉智能建設,經濟增長水平一直落后其他城市。她決定把智能產業和近百個,其自有高端品牌網站“一帶一路”帶回家,要與我們的家鄉同呼吸共命運!    
    智能云“馨”是韓麗在研究發布互聯網+的基礎上研發出來的多端口適應的物聯網+整合項目。智能“馨”片的分類有很多,按照用途的不同,分類也會不同。智能芯片一般與感應系統以及動力傳動系統一起作用,相互彌補。發揮各自的優勢。一般智能芯片就相當于一個單片機,負責處理收集到的感應型號,再通過電器開關驅動電力馬達,將指令傳遞給傳動系統來完成初始要達到的效果。
    針對韓麗自有服裝品牌“馨朵唯”與8月20日起在哈爾濱舉行招商引資開發智能科技發展基地建設項目。希望家鄉父老,能力企業共同搭建中國數據國際大舞臺,帶動地方經濟發展,增加人員就業,實體店鋪盤活,閑置商鋪提高利用率的重要舉措!
    智能云“馨”的基礎系統工程介紹:
    內存工作原理
    CPU和內存是計算機中最重要的兩個組件,前面已經知道了CPU是如何工作的,上一篇也介紹了內存采用的DRAM的存儲原理。CPU工作需要知道指令或數據的內存地址,那么這樣一個地址是如何和內存這樣一個硬件聯系起來的呢?現在就看看內存到的是怎么工作的。
    具體項目內容:
    1.DRAM“馨”片,通信不逆襲,三網和諧一家親
    DRAM芯片以一個單元的結構圖的形式存在。一個單元被分為了N個超單元(可以叫做cell),每個單元由M個DRAM單元組成。我們知道一個DRAM單元可以存放1bit數據, 所以描述一個DRAM芯片可以存儲N*M位數據,例如:一個有16個超單元,每個單元8位的存儲模塊,我們可以稱為16*8bit 的DRAM“馨”片。而超單元(2,1)我們可以通過如矩陣的方式訪問,比如 data = DRAM[2.1] 。這樣每個超單元都能有唯一的地址,這也是內存地址的基礎。
    每個超單元的信息通過地址線和數據線傳輸查找和傳輸數據。例如有2根地址線和8根數據線連接到存儲控制器(注意這里的存儲控制器和原始的內存控制器不是一回事),存儲控制器電路一次可以傳送M位數據到DRAM芯片或從DRAM傳出M位數據。為了讀取或寫入【i,j】超單元的數據,存儲控制器需要通過地址線傳入行地址i 和列地址j。這里我們把行地址稱為RAS(Row Access Strobe)請求, 列地址稱為(Column Access Strobe)請求。
    但是我們發現地址線只有2為,也就是尋址空間是0-3。而確定一個超單元至少需要4位地址線,那么是怎么實現的呢?
    解決這個問題采用的是分時傳送地址碼的方法。看上圖我們可以發現在DRAM“馨”片內部有一個行緩沖區,實際上獲取一個cell的數據,是傳送了2次數據,第一次發送RAS,將一行的數據放入行緩沖區,第二期發送CAS,從行緩沖區中取得數據并通過數據線傳出。這些地址線和數據線在“馨”片上是以管腳(PIN)與控制電路相連的。將DRAM電路設計成二維矩陣而不是一位線性數組是為了降低“馨”片上的管腳數量。入上圖如果使用線性數組,需要4根地址管腳,而采用二維矩陣并使用RAS\CAS兩次請求的方式只需要2個地址管腳。但這樣的缺點是增加了訪問時間。
    1.2 內存模塊 各廠家抱團發展聯盟經濟
    內存模塊也就是我們常說的內存條。我們在購買內存是經常會聽到我這個內存采用的是什么顆粒,如下左圖,我們看到內存PCB上的一塊塊的就是內存顆粒。也就是我們DRAM芯片。通過管腳和PCB連接。不同廠商,不同類型的內存可以的大小,管腳,性能,封裝都不一樣,但是原理都是一樣。這里我們就不展開介紹了。而下有圖展示了一個1M*4bit的DRAM芯片的管腳圖。  


    對于一個內存顆粒來說,它的容量和字長是有限的,所以我們使用內存是會把多個顆粒組成內存模塊來對內存進行字長和容量的擴展。目前的內存一般內存條上面會有多顆內存顆粒,比如一條64M的內存可能是由8個8M*8bit 的SDRAM內存顆粒組成。
    1.2.1 字長位數擴展 
    位擴展的方法很簡單,只需將多片RAM的相應地‚址端、讀/寫控制端 和“馨”片選信號CS并接在一起,而各片RAM的I/O端并行輸出即可。 如上圖,我們采用了8個DRAM芯片分,別編號為0-7,每個超單元中存儲8位數據。在獲取add(row=i,col=j)地址的數據的時候,從每個DRAM芯片的【i, j】單元取出一個字節的數據,這樣傳送到CPU的一共是8*8b = 64b的數據。我們通過8個8M*8b的內存顆粒擴展為了8M*64b的內存模塊。
    1.2.2 字存儲容量擴展
    RAM的字擴展是利用譯碼器輸出控制各片RAM的片選信號CS來實現的。RAM進行字擴展時必須增加地址線,而增加的地址線作為高位地址與譯碼器的輸入相連。同時各片RAM的相應地址端、讀/寫控制端 、相應I/O端應并接在一起使用。下圖是我們通過4個2M*8b的內存顆粒,將內存容量擴展到了8M,字長為8位。
    最后,內存通過主板上的內存插槽DIMM和內存總線相連接。對于不同內存比如SDRAM和DDR他們內存金手指的定義是不同的。這里就不需要詳細介紹了。
    2. 內存編址
    前面我們知道了DRAM顆粒以及內存模塊是如何擴展字長和容量的。一個內存可能是8位,也可能是64位,容量可能是1M,也可能是1G。那么內存是如何編地的呢?和地址總線,計算機字長之間又有什么關系呢?
    2.1 字長
    手機在同一時間內處理的一組二進制數稱為一個“計算機”的“字”,而這組二進制數的位數就是“字長”。通常稱處理字長為8位數據的CPU叫8位CPU,32位CPU就是在同一時間內處理字長為32位的二進制數據。 所以這里的字并不是我們理解的雙字節(Word)而是和硬件相關的一個概念。一般來說計算機或手機的數據線的位數和字長是相同的。這樣從內存獲取數據后,只需要一次就能把數據全部傳送給CPU。比64位CPU還快,還省電!
    2.2 地址總線
    前面我們已經介紹過地址總線的功能。地址總線的數量決定了他最大的尋址范圍。就目前來說一般地址總線先字長相同。比如32位手機或計算機擁有32為數據線和32為地線,最大尋址范圍是4G(0x00000000 ~ 0xFFFFFFFF)。當然也有例外,Intel的8086是16為字長的CPU,采用了16位數據線和20位數據線等等。64位手機處理器,最大尋址范圍是4G(0x00000000 ~ 0xFFFFFFFF)。 
    2.3 內存編址 
    從前面我們知道一個電子產品內存的大小和它“馨”片擴展方式有關。比如我們內存模塊是采用 16M*8bit的內存顆粒,那么我們使用4個顆粒進行位擴展,成為16M*32bit,使用4個顆粒進行字容量擴展變為64M*32bit。那么我們內存模塊使用了16個內存顆粒,實際大小是256MB。
    我們需要對這個256M的內存進行編址以便CPU能夠使用它,通常我們多種編址方式:
    按字編址:對于這個256M內存來說,它的尋址范圍是64M,而每個內存地址可以存儲32bit數據。
    按半字編址:對于這個256M內存來說,它的尋址范圍是128M,而每個內存地址可以存儲16bit數據。
    按字節編址:對于這個256M內存來說,它的尋址范圍是256M,而每個內存地址可以存儲8bit數據。
    對于我們現在的電子產品來說,主要都是采用按字節編址的方式。所以我們可以把內存簡單的看成一個線性數組,數組每個元素的大小為8bit,我們稱為一個存儲單元。這一點很重要,因為項目上馬后我們智能云“馨”后續業務發展擴大所討論的所有問題內存都是以按字節編址的方式。 這也是為什么對于32位計算機來說,能使用的最多容量的內存為4GB。如果我們按字編地址,能使用的最大內存容量就是16GB等等。
    于是很容易想到一個問題,為什么我們要采用字節編址的方式呢?關于這個問題,通過我們自己的“攻擊”模擬試驗,基本沒有找到答案,甚至都找不到問這個問題的。這也是韓麗此次研發的尖端技術所在,涉及韓麗關于互聯網+和物聯網+的科研成果商業機密,不方便透露。
    另一方面的問題是,內存編址方式和DRAM“馨”片是否有關呢? 我認為還是有一定關系。比如我DRAM的“馨”片是8M*8bit,那么“馨”片最小的存儲單位就是8bit,那么我們內存編址就不能按照半個字節來編址。否則內存取出8bit,根本不知道你要那4bit傳給CPU。也有一種說法是現在的DRAM“馨”片cell都是8bit,所以采用按字節編址。另一方面應該也和數據總線位寬有關。
    3. 內存數據
    已知內存是按字節編址,每個地址的存儲單元可以存放8bit的數據。我們也知道CPU通過內存地址獲取一條指令和數據,而他們存在存儲單元中。現在就有一個問題。我們的數據和指令不可能剛好是8bit,如果小于8位,沒什么問題,頂多是浪費幾位(或許按字節編址是為了節省內存空間考慮)。但是當數據或指令的長度大于8bit呢?因為這種情況是很容易出現的,比如一個16bit的Int數據在內存是如何存儲的呢?
    3.1 內存數據存放
    其實一個簡單的辦法就是使用多個存儲單元來存放數據或指令。比如Int16使用2個內存單元,而Int32使用4個內存單元。當讀取數據時,一次讀取多個內存單元。于是這里又出現2個問題:
    多個存儲單元存儲的順序?
    如何確定要讀幾個內存單元?
    涉及韓麗“馨朵唯”品牌的智能云“馨”研發商業機密,不便透露。
    3.1.1 大端和小端存儲
    Little-E就是低位字節排放在內存的低地址端,高位字節排放在內存的高地址端。
    Big-E就是高位字節排放在內存的低地址端,低位字節排放在內存的高地址端。
    需要說明的是,所以電子產品采用大端還是小端存儲是CPU來決定的, 我們常用的X86體系的CPU采用小端,一下ARM體系的CPU也是用小端,但有一些CPU卻采用大端比如PowerPC、Sun。判斷CPU采用哪種方式很簡單:
    既然不同計算機存儲的方式不同,那么在不同計算機之間交互就可能需要進行大小端的轉換。這一點在自主編程中不介紹了,對以我們單一CPU來說我們可以不需要管這個轉換的問題,另外我們目前個人PC都是采用小端方式,所以我們后面默認都是這種方式。
    3.1.2 CPU指令
    前面我們多次提到了指令的概念,也知道指令是0和1組成的,而匯編代碼提高了機器碼的可讀性。為什么突然在這里介紹CPU指令呢? 主要是解釋上面的第二個問題,當我讀取一個數據或指令時,我怎么知道需要讀取多少個內存單元。
    3.1.2.1 CPU指令格式
    首先我們來看看CPU指令的格式,我們知道CPU質量主要就是告訴CPU做什么事情,所以一條CPU指令一般包含操作碼(OP)和操作
    A1為被操作數地址,也稱源操作數地址; A2為操作數地址,也稱終點操作數地址; A3為存放結果的地址。 同樣,A1,A2,A3以是內存中的單元地址,也可以是運算器中通用寄存器的地址。所以就有一個尋址的問題。關于指令尋址后面會介紹。
    CPU指令設計是十分復雜的,因為在計算機中都是0和1保存,那計算機如何區分一條指令中的操作數和操作碼呢?如何保證指令不會重復呢?這個不是我們討論的重點,有興趣的可以看看計算機體系結構的書,里面都會有介紹。從上圖來看我們知道CPU的指令長度是變長的。所以CPU并不能確定一條指令需要占用幾個內存單元,那么CPU又是如何確定一條指令是否讀取完了呢?
    3.1.2.2 指令的獲取
    現在的CPU多數采用可變長指令系統。關鍵是指令的第一字節。 當CPU讀指令時,并不是一下把整個指令讀近來,而是先讀入指令的第一個字節。指令譯碼器分析這個字節,就知道這是幾字節指令。接著順序讀入后面的字節。每讀一個字節,程序計數器PC加一。整個指令讀入后,PC就指向下一指令(等于為讀下一指令做好了準備)。
    比如上面這條MOV匯編指令,把立即數00存入AL寄存器。而CPU獲取指令過程如下:
    從程序計數器獲取當前指令的地址0x0001。
    存儲控制器從0x0001中讀出整個字節,發送給CPU。pc+1 = 0X0002.
    CPU識別出【10110000】表示:操作是MOV AL,并且A2是一個立即數長度為一個字節,所以整個指令的字長為2字節。
    CPU從地址0x0002取出指令的最后一個字節
    CPU將立即數00存入AL寄存器。
    這里的疑問應該是在第3步,CPU是怎么知道是MOV AL 立即數的操作呢?我們在看下面一個列子。
    我們可以比較一下兩條指令第一個字節的區別,發現這里的MOV  AL是1010 0000,而不是Sample1中的1011 000。CPU讀取了第一個字節后識別出,操作是MOV AL [D16],表示是一個寄存器間接尋址,A3操作是存放的是一個16位就是地址偏移量(為什么是16位,后面文章會介紹),CPU就判定這條指令長度3個字節。于是從內存0x0002~0x0003讀出指令的后2個字節,進行尋址找到真正的數據內存地址,再次通過CPU讀入,并完成操作。
    從上面我們可以看出一個指令會根據不同的尋址格式,有不同的機器碼與之對應。而每個機器碼對應的指令的長度都是在CPU設計時就規定好了。8086采用變長指令,指令長度是1-6個字節,后面可以添加8位或16位的偏移量或立即數。 下面的指令格式相比上面2個就更加復雜。
    第一個字節的高6位是操作碼,W表示傳說的數據是字(W=1)還是字節(W=0),D表示數據傳輸方向D=0數據從寄存器傳出,D=1數據傳入寄存器。
    第二個字節中REG表示寄存器號,3位可以表示8種寄存器,根據第一字節的W,可以表示是8位還是16位寄存器。表3-1中列出了8086寄存器編碼表
    第二個字節中的MOD和R/M指定了操作數的尋址方式,表3-2列出了8086的編碼


    這里沒必要也無法更詳細介紹CPU指令的,只需要知道,CPU指令中已經定義了指令的長度,不會出現混亂讀取內存單元的現象。有興趣的可以查看引用中的連接
    3.1.3  內存數據
    3.1.3.1 內存數據的操作
    從上面我們可以知道,操作數可以是立即數,可以存放在寄存器,也可以存放在內存。對于第一個例子,指令已經說明,操作時是一個字節,于是CPU可以從下一個內存地址讀取操作時,而對于第二個列子,操作數只是地址偏移,所以當CPU獲得這個數據后,需要轉換成實際的內存地址,在進行一次內存訪問,把數據讀入到寄存器中。這里就出現我們前面提到的問題,這個數據我們要讀幾個存儲單元呢?


    讓我們看一段C++代碼和對應的匯編代碼,操作很簡單,創建一個Myclass對象后,對成員變量賦值。而賦值都是試用Mov操作符。對于這些變量我們有賦值操作和取值操作,那么是如何確定要讀取或寫入數據的大小呢?
    先看看賦值操作,往dword ptr [ebp-6Ch]內存存入一個立即數, [ebp-6Ch]是num5的內存地址,而前面的dword ptr 表示這是進行一個雙子操作。還記得上面指令格式中第一個字節的W字段嗎? 在8086中只能進行字節或字操作,而現在CPU都可以進行雙字操作。
    同樣,當我們要從一個內存讀取數據的時候,也要指定讀取數據的操作類型,這里也是雙字操作。這樣以來,就能從內存中正確的讀出需要的長度了。就這么一個簡單的賦值操作,獲取你從來沒想過在內存中怎么存放,又是怎么讀取的。這一切都是編譯器和CPU在背后為我們完成了。
    3.1.3.2 內存對齊
    前面我們清楚了CPU是如何正確讀取數大小不同的數據的,最后一部分來看看有關內存對齊的問題。對于大部分程序員來說,內存對齊應該是透明的。內存對齊是編譯器的管轄范圍。編譯器為程序中的每個數據單元安排在適當的位置上。
    3.1.3.2.1 對齊原因
    從前面我們知道,目前計算機內存按照字節編址,每個地址的內存大小為1個字節。而讀取數據的大小和數據線有關。比如數據線為8位那么一次讀取一個字節,而如果數據線為32位,那么一次需要讀取32個字節,這樣是為了一次更多的獲取數據提高效率。否則讀取一個int變量就需要進行4次內存操作。對于內存訪問一般有以下兩個條件:
    CPU進行一次內存訪問讀取的數據和字長相同。
    有些CPU只能對字長倍數的內存地址進行訪問。
    對于第一個條件一般來說,目前存儲器一個cell是8bit,進行位擴展使他和字長還有數據線位數是相同,那么一次就能傳送CPU可以處理最多的數據。而前面我們說過目前是按字節編址可能是因為一個cell是8bit,所以一次內存操作讀取的數據就是和字長相同。
    也正是因為和存儲器擴展有關(參考1.2.1的圖),每個DRAM位擴展芯片使用相同RAS。如果需要跨行訪問,那么需要傳遞2次RAS。所以以32位CPU為例,CPU只能對0,4,8,16這樣的地址進行尋址。而很多32位CPU禁掉了地址線中的低2位A0,A1,這樣他們的地址必須是4的倍數,否則會發送錯誤。
    如上圖,當計算機數據線為32位時,一次讀入4個地址范圍的數據。當一個int變量存放在0-3的地址中時,CPU一次就內存操作就可以取得int變量的值。但是如果int變量存放在1-4的地址中呢? 根據上面條件2的解釋,這個時候CPU需要進行2次內存訪問,第一次讀取0-4的數據,并且只保存1-3的內容,第二次訪問讀取4-7的數據并且只保存4的數據,然后將1-4組合起來。如下圖:
    所以內存對齊不但可以解決不同CPU的兼容性問題,還能減少內存訪問次數,提高效率。當然目前關于這個原因爭論很多,可以看看CSDN上的討論:http://bbs.csdn.net/topics/30388330
    3.1.3.2.2 如何對齊內存
    內存對齊有一個對齊系數,一般是2,4,8,16字節這樣。而不同平臺上的對齊方式不同,這個主要是編譯器來決定的。
    具體的規則可以參考之前轉的一篇文章,這里就不詳細寫了: http://blog.csdn.net/cc_net/article/details/2908600
    以上通過這一系列中國企業發展聯盟的職能云“馨”及“馨朵唯”自主商業品牌的研發工作中內存工作的介紹,我們從內存的硬件結構,存儲方式過渡到了內存的編址方式,然后又探討了按字節編址帶來的問題和解決的辦法。這里就涉及到了CPU的指令格式,編譯器的支持。最后我們也是從硬件和軟件方面討論了內存對齊的問題。內存的訪問管理是計算機中最重要的部分,也是計算機硬件和軟件之間交互的過渡的一個地方。所以理解了內存的工作原理,對于后面理解不同的內存模型很有幫助。
    參考各合作伙伴產品使用說明等
    SDRAM DRAM工作原理

    詳解大端模式和小端模式
 
    cpu是怎樣識別一條接一條的指令的
 
    8086指令與機器碼對應
 
    8086/8088指令格式
 
    為什么要進行內存對齊內存對齊?
    3.1.3.2.1 對齊原因
    “也正是因為和存儲器擴展有關,每個DRAM位擴展芯片使用相同RAS。如果需要跨行訪問,那么需要傳遞2次RAS。所以以32位CPU為例,CPU只能對0,4,8,16這樣的地址進行尋址。”
    智能云“馨”研發人韓麗,編程技術圈里朋友叫她“代碼屠夫”或“朵兒”“云馨”她和各互聯網大佬們私交甚好,但是畢竟年紀輕輕,剛開始這么多大腕同時親傳功力,她也怕自己吃不消,完成不了各老師們的心愿。但據知情人士爆料他們說“她是一路完成互聯網大哥們做中國企業家世界品牌名片的表率!據互聯網界人士透露馬云是她“小三”股市大哥“波哥”是小五,計算機界博士帥才的“老夫子”更曾下跪求婚!更與微博、微信、淘寶、騰訊、百度、搜狗等高富帥,白富美老友相稱!而且她心里非常篤定,非常自信告訴大家,她的智能云“馨”項目一定會完美的在互聯網與實體產業間起到橋梁作用,這是屬于80后那種向上、熱血,有個人意義的感覺。因為本身計算機產業界男女失衡,更無模特般的大美女出現,而韓麗完美結合了內在與外在的優勢。很少有人把品牌弄一個家庭,但是招商引資后韓麗想把公司名叫云馨科技有限公司。并與阿里巴巴集團和眾多實體商業,電子品牌,第三方金融支付機構等多端口合作,聯盟發展地方經濟建設,為家鄉人民謀福利,提供可發展的基礎項目和重點工業農業科技推廣項目,提高就業率,增加人均勞動就業收入。
    她的項目主要是對外貿易和中國企業自主品牌推廣等,APP預計在兩周到三周內會得到通過,解決中國人與外國人的社交、貿易發展與安全問題,主要是O2O和C2C,韓麗是團隊創始人,CEO。還有個重量級的COO是來自于外國高端電子產業的運營總監,她們的CTO自己有家公司,就是韓麗挖過來的,2011年他就曾服務到三百家APP公司。希望我們兩個星期以后,大家在APP上,只要你的手機是以智能云“馨”做伴,所有國產手機和蘋果手機都可一樣隨時隨地全球勾通,淘寶、旅游更便捷。
    全國首批多功能金融服務卡將于哈爾濱揭開面紗
    全國首批加載銀行金融功能“馨”卡,第三方支付,多功能消費,可與醫保卡并用。
    全國首批加載多端金融功能的社會保障卡將于哈爾濱首發,居民可在哈爾濱銀行、中國銀行、建設銀行、農業銀行、工商銀行、交通銀行和龍江銀行等機構包括第三方支付機構進行辦理。此卡也將為全市參保群眾在信息查詢、參保繳費、待遇領取、就醫診療結算、金融支付、存款轉賬、消費等各個方面提供便捷、高效、優質的服務。
    據了解,此卡是在國家人社部統一規劃、統一標準,由各級人社部門面向社會發行的一張功能大卡的基礎上研發的私人定制服務卡。卡片精致,獨一無二,可以升級定制高端車型鑰匙,享有眾多商家獨有的專享服務和消費需求。“以人為本、用心服務,專業人士、技術支持”是我們的企業文化和管理重點,我們用心傾聽您的需求,以專業的國際智能科技牽手大家,共同為創新繁榮東北經濟努力不懈!招商引資電話:045188779888


 

[責任編輯:]

網友評論:

已有1條評論

驗證碼:
中国体彩e球彩开奖结果 二分彩app下载 浙江麻将怎么打法 上海天天彩四 捕鱼王输了好几万 上海时时乐形态走势 黑龙江36选7玩法规则 体彩四川金7乐结果 青海11选5前3走势图 玩极速赛车有什么技巧 豆悦欢乐真人麻将 平码固定的公式规律 陕西11选五一定牛走势图 微乐app微乐官方下载 TL联盟兼职平台 山东11选5开奖结果手机版 海南琼崖麻将iPhone