APIC (Advanced Programmable Interrupt Controller)有分Local / IO APIC這兩種,這兩種都會同時存在系統上,一個管外部一個管內部。Local APIC是每個CPU核心都有的,而IO APIC(Intel 82093)是外部接收中斷的中斷控制器,可以決定要以什麼型態以及發給哪個核心。
Local APIC可以處理以下的中斷:
1. CPU Core相連的I/O設備。比如直接連在LINT0,LINT1 pin上的設備。
2. 外部的I/O設備。這些設備産生的中斷先經過I/O APIC,然後再通過LOCAL APIC到達處理器。
3. Inter-processor interrupts (IPIs), CPU核心之間的中斷。當一個核心想中斷另外一個就可以用IPI。
bloggerads
2015年10月22日 星期四
2015年10月21日 星期三
MCA (Machine Check Architecture)
MCA 最初的設計是用來report hardware error,如 system bus errors, ECC errors, parity errors,
cache errors, TLB errors等等。
register主要分成兩部分 Global Control MSRs與 Error-Reporting Bank Registers
2015年10月16日 星期五
UBUNTU 下的硬碟對拷方法
使用"dd"這個指令,將硬碟a完全複製到硬碟b
(Please prepare a ubuntu system to boot and use buit-in app "dd" to clone disk a, b, c,... to disk a, b, c,...)
1. find your disk by calling built-in app "Disks" and find which disk is source and which one is destination
for example, my source disk is sdc, destination disk is sda
2. sudo dd if=/dev/sdc of=/dev/sda bs=200M
bs is very critical, although I type 200M, but actually average speed is around 100MB, if you dont give this parameter, the clone process might take very long time
3. wait then done.
<Note>
if you want to see the progress, open a new terminal and type:
watch -n 5 killall -USR1 dd
Then the dd will start to show the progress every 5 seconds.
(Please prepare a ubuntu system to boot and use buit-in app "dd" to clone disk a, b, c,... to disk a, b, c,...)
1. find your disk by calling built-in app "Disks" and find which disk is source and which one is destination
for example, my source disk is sdc, destination disk is sda
2. sudo dd if=/dev/sdc of=/dev/sda bs=200M
bs is very critical, although I type 200M, but actually average speed is around 100MB, if you dont give this parameter, the clone process might take very long time
3. wait then done.
<Note>
if you want to see the progress, open a new terminal and type:
watch -n 5 killall -USR1 dd
Then the dd will start to show the progress every 5 seconds.
2015年9月14日 星期一
DOS boot menu problem (autoexec.bat + exe file )
在dos下想要做選單連結一些執行檔,但是將執行檔路徑寫在autoexec.bat 常常會碰到顏色花掉以及執行完執行檔卻回不了DOS的問題。
原因是因為在執行autoexec.bat時DOS initial還沒完成(還必須設定VGA mode跟執行int 21h回到Dos),因此autoexec.bat內不能直接執行用C寫的程式,要先寫執行一個組合語言寫的程式切video mode 以及呼叫DOS中斷來回到DOS,才會完整跑完DOS initial的流程。
在autoexec.bat最前面先放以下這隻程式,之後再跑其他的C語言寫的執行檔都能順正常執行,執行完後也能順利回到DOS
原因是因為在執行autoexec.bat時DOS initial還沒完成(還必須設定VGA mode跟執行int 21h回到Dos),因此autoexec.bat內不能直接執行用C寫的程式,要先寫執行一個組合語言寫的程式切video mode 以及呼叫DOS中斷來回到DOS,才會完整跑完DOS initial的流程。
在autoexec.bat最前面先放以下這隻程式,之後再跑其他的C語言寫的執行檔都能順正常執行,執行完後也能順利回到DOS
2015年8月20日 星期四
2015年8月12日 星期三
DRAM overview
每周部門meeting都會討論各function owner的issue,然後幾乎都是一堆DRAM的issue。
我自己也不是很懂,不過我把比較常聽到同事講的東西加上自己的理解寫一篇來分享
1. DRAM Data的寬度是 8 bytes (64bits)/ 含有ECC的則是72bits
2. Channel/Rank/記憶體顆粒的解釋:
- 1個channel可以有很多Dimm, 但每個channel有支援Rank的數量限制 (如H61/H81單一Channel只能接受2個Rank)
- 1條Dimm可以有很多Rank. (一條記憶體目前最多是有4個Rank)
- 1個Rank資料寬度是64bit, 由許多記憶體顆粒組成這個資料寬度, 1個記憶體顆粒資料寬度可能是8bit, 16bit,.同一個Rank上的記憶體顆粒他們的CS都是接在一起。
- bank則是cell 組成的二維陣列(Row & Column), 使用控制訊號為BA0, BA1,.
3. DRAM 頻率的算法
- IO clock (或稱Bus clk, 外頻) = Memory clock (或稱Internal clk, 內頻)* 1或2或4或8 (要看是DDR或DDR2或DDR3或DDR4)
- Data rate (數據速率) = Memory clock * 2或4或8或16 (要看是DDR或DDR2或DDR3或DDR4)
- ex: 模組名稱: PC3-6400 (DDR3-800): IO clock=400MHz(因為是double date rate), 記憶體clock=100MHz, 數據速率=800MT/s
5. Bank Interleaving技術: 原理是將奇數位址和偶數位址分在不同bank,減少讀寫當前字元而影響下一個字元的時間
6. CPU 至 DRAM 顆粒層級由大至小為 channel>DIMM>rank>chip>bank>row/column
6. CPU 至 DRAM 顆粒層級由大至小為 channel>DIMM>rank>chip>bank>row/column
2015年8月1日 星期六
UEFI : ROM 格式
相關設定請參考 .fdf (Flash Description Files)檔案
UEFI對於ROM的格式,可以分為下面幾項:(由大集合到小集合)
● Firmware Device (FD):
● Firmware Device (FD):
Bios Rom即是一個 FD, 一個FD可以由多個FV組成● Firmware Volume (FV):
每個FV通常是由一個 header+N個Firmware Files所組成, 一般說的Boot Firmware Volume/ Recovery Firmware Volume/ Main Firmware Volume就是以這個為單位, FV的細部定義如下:
訂閱:
意見 (Atom)
