Sunday, March 23, 2008

Message Signaled Interrupts (MSI)

Message Signaled Interrupts, in PCI 2.2 and later and PCI Express, is an alternate form of interrupt from the traditional pin-signalled system; instead of asserting a given IRQ pin, a message is written to a segment of system memory. Each device can have from 1 to 32 unique memory locations in which to write MSI events to. An advantage of the MSI system is that data can be pushed along with the MSI event, allowing for greater functionality

inter-processor interrupt (IPI)

An inter-processor interrupt (IPI) is a special type of interrupt by which one processor may interrupt another processor in a multiprocessor system. IPIs are typically used to implement a cache coherency synchronization point.
In x86 based systems, an IPI synchronizes the cache and Memory Management Unit (MMU) between processors

Tuesday, March 18, 2008

Advanced Programmable Interrupt Controller (APIC)

An Advanced Programmable Interrupt Controller (APIC) is a more intricate Programmable Interrupt Controller (PIC) containing a magnitude more outputs and much more complex priority schemas. Advanced IRQ management.
One of the best known APIC architectures, the Intel APIC Architecture, is now replacing the original 8259A PIC in newer x86 PCs

Sunday, March 16, 2008

SPD (Serial Presence Detect)

Serial Presence Detect (SPD) refers to a standardized way to automatically access information about a computer memory module. It is the serial version of Parallel Presence Detect (PPD).

In order for a memory module to support SPD, the JEDEC standards require certain parameters to be placed in the lower 128 bytes of an EEPROM located on the memory module. These bytes contain timing parameters, manufacturer, serial number and other useful information about the module. This data allows a device utilizing the memory to automatically determine key parameters of the module. For example, the SPD data on an SDRAM module might provide information about the CAS latency, allowing this to be correctly set without user intervention.

The SPD EEPROM is accessed using SMBus, a variant of the I²C protocol. This reduces the number of communication pins on the module to just two: a clock signal and a data signal. (There are three additional pins to provide each EEPROM with a unique device address.) The same SMBus is commonly used on motherboards for system health monitoring tasks such as reading power supply voltages, CPU temperatures, and fan speeds.


Enhanced Performance Profiles (EPP)
EPP is an enhancement of SPD and provides additional performance-specific information needed for overclocking applications. The EPP information is stored in the same EEPROM, but in bytes 99-127 which are unused by standard SPD.

SMBus (System Management Bus)

The System Management Bus (abbreviated to SMBus or SMB) is a simple two-wire bus, derived from I²C and used for communication with low-bandwidth devices on a motherboard, especially power related chips such as a laptop's rechargeable battery subsystem (see Smart Battery Data). Other devices might include temperature, fan, or voltage sensors; and lid switches. PCI add-in cards may connect to an SMBus segment.
A device can provide manufacturer information, indicate its model/part number, save its state for a suspend event, report different types of errors, accept control parameters, and return status. The SMBus is generally not user configurable or accessible. Although SMBus devices usually can't identify their functionality, a new PMBus coalition has extended SMBus to include conventions allowing that.
The SMBus was defined by Intel in 1995. It carries clock, data, and instructions and is based on Philips' I²C serial bus protocol. Its clock frequency range is 10 kHz to 100 kHz. (PMBus extends this to 400 kHz.) Its voltage levels and timings are more strictly defined than those of I²C, but devices belonging to the two systems are often successfully mixed on the same bus.
SMBus is mostly a subset of I²C; more loosely specified I²C devices may cause an SMBus to hang. The SMBus has an extra optional shared interrupt signal called SMBALERT#, which can be used by slaves to tell the host to ask its slaves about events of interest. SMBus also defines a less common "Host Notify Protocol", providing similar notifications but passing more data and building on the I²C multi-master mode.
FreeBSD, Linux, Windows 2000, Windows XP and Windows Vista support SMBus devices, but Windows 98 and version prior to it does not.

SISD SIMD MISD MIMD

SISD
單指令流單一資料流電腦,也就是其處理單元同一時間內只能處理單一指令,同時也只能存取一筆資料。例如現在一般單CPU的個人電腦就是屬於這一類。

SIMD
單指令流多資料流電腦,也就是其處理單元同一時間內只能處理單一指令,但是一次可以存取多筆資料。例如目前較常見的管線電腦與超級電腦中的陣列處理機、向量處理機都是屬於這一類。


MISD

多指令流單資料流電腦,也就是其處理單元同一時間內可以處理多個指令,但是只能存取一筆資料。這種方式由於處理機速度的發展遠超過資料存取裝置存取速度的發展,因此並不實用。

MIMD
多指令流多資料流電腦,也就是其處理單元同一時間內可以處理多個指令,同時也能存取多筆資料。例如現在一般平行處理電腦就是屬於這一類。

Friday, March 14, 2008

Intel APIC Architecture

The Intel APIC Architecture is a system of Advanced Programmable Interrupt Controllers (APICs) designed by Intel for use in Symmetric Multi-Processor (SMP) computer systems. It was originally implemented by the Intel 82093AA and 82489DX, and is found in most x86 SMP motherboards. It is one of several attempts to solve interrupt routing efficiency issues in multiprocessor computer systems.

Overview
There are two components in the Intel APIC system, the Local APIC (LAPIC) and the I/O APIC. The LAPIC is integrated into each CPU in the system, and the I/O APIC is used throughout the system's peripheral buses. There is typically one I/O APIC for each peripheral bus in the system. In original system designs, LAPICs and I/O APICs were connected by a dedicated APIC bus. Newer systems use the system bus for communication between all APIC components.
In systems containing an 8259 PIC, the 8259 may physically be connected to the LAPIC in the system's bootstrap processor (BSP), or to one of the system's I/O APICs, or both. Logically, however, the 8259 is only connected once at any given time.

Local APICs
LAPICs manage all external interrupts for the processor that it is part of. In addition, it is able to accept and generate inter-processor interrupts (IPIs) between LAPICs. LAPIC's may support up to 224 usable IRQ vectors from an I/O APIC. Vectors numbers 0 to 31, out of 0 to 255, are reserved for exception handling by x86 processors.

I/O APICs
I/O APICs contain a redirection table, which is used to route the interrupts it receives from peripheral buses to one or more Local APICs.

Thursday, March 13, 2008

FB-DIMM (FBD,Fully Buffered DIMM)

FB-DIMM (Fully Buffered DIMM)
這項技術是為了加快記憶體模組的穩定性、容量以及速度所設計,其原理是使用一個 AMB (Advanced Memory Buffer),來作為記憶體控制器與記憶體模組溝通的緩衝區。這樣的做法有下列幾個優點:
1. 高容量:可以在不增加記憶體控制器 (Memory Controller) 的線路下提升記憶體的寛度。以目前 FB-DIMM 的設計,可以支援到 6 個 channel, 每個 channel 有 8 個 DIMM, 每個 DIMM 有 2 個 rank。如果使用 4GB 的 FB-DIMM 模組 (Double Rank),可以達到 192 GB 的記憶體容量。2. 更可靠:在 AMB 中提供錯誤修正的能力可以增加傳輸的可靠性 3. 頻寛更高:由於 AMB 可對讀寫作緩衝,記憶體控制器可以同時對記憶體模組作讀寫,得到更大的記憶體頻寛4. 接腳更少:記憶體控制器和 AMB 的線路,使用序列 (Serial) 的傳輸,使得硬體接線更加簡單。傳統的接線方式,記憶體控制器有 240 pin (DDR2),而在 FB-DIMM 的架構之下,只需要 69 pin。
但這樣的做法仍有其缺點
1. 較為耗電: 由於 AMB 必須處理控制器與記憶體模組的溝通,增加了電量的損耗。2. 較高的傳輸延遲: 傳輸必須經由 AMB 再轉送至記憶體模組,增加了傳輸的延遲
FB-DIMM 架構圖 (資料來源 Intel)

在傳統的記憶體架構之下,每個記憶體的 Channel 可以支援的 DIMM 個數,會隨著 DIMM 的速度提高而減少。下圖說明了這種狀況 (資料來源 Intel)


由於這樣的限制,使得記憶體控制器可以支援的記憶體大小受到限制。而 FB-DIMM 正好可以解決這樣的問題。

Fully Buffered DIMM(或FB-DIMM)是一種記憶體解決方案,用來增加記憶體系統的穩定性、速度、及容量密度。就傳統而言,記憶體控制器上的資料線必須與每一個DRAM模組相連接,如此記憶體無論是拓寬存取介面的頻寬或加快存取介面的速度,都會使介面的信號轉差,如此不僅限制了速度的提升,也會限制記憶體系統的記憶空間提升,而FB-DIMM則是用不同的方式手法來解決這個問題。 JEDEC組織已經正式敲定發佈FB-DIMM的規範標準。 Fully Buffered DIMM架構

新創立了一顆先進記憶體緩衝(Advanced Memory Buffer,AMB)晶片,這顆晶片被安插在記憶體控制器與記憶體模組間,且與「傳統DRAM所用的並列匯流排架構」不同的,FB-DIMM是以串列介面來連接AMB晶片與記憶體控制器,如此可以在不增加記憶體控制器的線路數下提升記憶體的頻寬,同時具有技術可行性。使用此架構後,記憶體控制器不需要再直接將資料寫入記憶體模組,而是透過AMB晶片來完成這項工作。此外AMB也能以緩衝方式來抵補信號劣化並重新發送信號。除此之外,AMB也能提供錯誤更正,而不需要偏勞到記憶體控制器或處理器,另外也能提供「位元傳巷的容錯更正,Bit Lane Failover Correction」能力,能查出哪一條資料路徑壞損,並在運作過程中將該壞損路徑移除不用,如此能大幅減少命令資訊傳輸、位址資訊傳輸的錯誤。 此外,因為讀取及寫入都已經透過緩衝處理,所以記憶體控制器可同時執行讀取與寫入。如此不僅接線更簡化、記憶體頻寬更大,且就理論而言,記憶體控制器可以不用在意與理會所使用的是何種記憶體晶片,可以是現有的DDR2也可以是往後的DDR3,理論上可直接替換。不過,Fully Buffered DIMM的作法也有其不利處,特別是在功耗(Power Assumption)及資料存取需求的延遲(Latency,俗稱:Lag)上。然而此方式應是未來最無顧慮的記憶體效能提升法。

Tuesday, March 11, 2008

DIMM

A DIMM, or dual in-line memory module, comprises a series of dynamic random access memory integrated circuits. These modules are mounted on a printed circuit board and designed for use in personal computers. DIMMs began to replace SIMMs (single in-line memory modules) as the predominant type of memory module as Intel's Pentium processors began to control the market.

The main difference between SIMMs and DIMMs is that SIMMs have a 32-bit data path, while DIMMs have a 64-bit data path. Since Intel's Pentium has (as do several other processors) a 64-bit bus width, it required SIMMs installed in matched pairs in order to use them. The processor would then access the two SIMMs simultaneously. DIMMs were introduced to eliminate this inefficiency. Another difference is that DIMMs have separate electrical contacts on each side of the module, while the contacts on SIMMs on both sides are redundant.

DIMM是一個內含隨機存取記憶體 (RAM ) 晶片 (Chip) 的小型電路版,可以說是由兩個單直列記憶體模型合併而成;一個DIMM有64位元 (bit ) 對記憶體 (Memory ) 的存取路徑 (Path) ,並有168個接腳,若中央處理器 (CPU ) 的匯流排 (BUS) 一樣是64位元,便只需要對記憶體做一次完整存取 (Access) 動作,所以一個主機板 (Mother Board ) 上只需要一個DIMM。DIMM可以分為3.3V和5V兩種電壓,這其中又有含緩衝器 (buffer(BUF)) 以及不含緩衝器兩種,目前比較常見的是3.3V含緩衝器類型,而DIMM還需要一個抹除式唯讀記憶體 (EPROM ) 供基本輸出入系統 (BIOS ) 儲存各種參數,讓晶片組 (Chipset) 達到最佳狀態。

SIMM (Single In-Line Memory Module)
SIMM 代表 Single In-Line Memory Module 。在 SIMM 上,記憶體晶片是被焊連或直接插在系統主機板上和記憶體模組的印刷電路板 (PCB) 上。最早期的 SIMM 一次能夠傳輸 8 位元的資料,後來隨著中央處理器開始以 32 位元的數量讀寫資料,能夠一次供應 32 位元資料的較寬 SIMM 開始發展。分辨兩這兩種不同的 SIMM 最容易的方式是以針腳數目的不同來分辨。較早期的模組只有 30pin ,而後期的模組有 72pin ,於是它們一般被稱為 30pin SIMM 以及 72pin SIMM 。另一個 30pin 以及 72pin SIMM 模組的重要差異在於 72pin SIMM 較 30pin SIMM 長 3/4 英吋 (1.9 公分 ) ,並且在下緣中央有一個模組刻痕。
DIMM (Dual In-Line Memory Module)
DIMM 與 SIMM 兩者之間的主要差別是在於 SIMM 的印刷電路板 (PCB) 正反兩面的針腳是相連在一起的,而在 DIMM 上,印刷電路板 (PCB) 正反兩面的針腳則各有其獨立電路。 168pin 的 SDRAM DIMM 以一次 64 位元的速度傳輸資料並大多使用於配備 64 位元或更寬記憶體匯流排的電腦系統上。 DDR SDRAM DIMM 則為 184pin 。

Tigerton

英特爾即將在下週推出新的四核心晶片,"Tigerton" Xeon MP處理器,其PC與伺服器處理器至此全面轉換成Core架構。
Tigerton隸屬於代號"Caneland"的整體平台,是專為搭配四個晶片以上的伺服器所設計的四核心處理器。英特爾準備在下週三(9月5日)先邀請戴爾、惠普、IBM和最近關係良好的昇陽等公司,舉辦一場預覽,正式的公開造勢活動則在隔天展開。英特爾曾說,希望Tigerton在第三季開始出貨,但並未提供確切的日期。
配備Tigerton的伺服器將有強大效能、價格異常昂貴,因此數量相對較少。目前伺服器市場以雙處理器系統佔絕大多數,但四向伺服器市場已有足夠讓硬體商獲利和保持興趣的需求。
高階伺服器市場,也是近年來超微(AMD)的Opteron相對勝出的區塊。戴爾第一款採用Opteron的產品就是四向伺服器。英特爾期望轉換至更省電且更有力的Core架構,能加強在這個區塊的競爭力。當Caneland正式登場時,英特爾在每一個重要市場區塊,都已經有Core架構的產品。
Tigerton也拋棄了四向Netburst晶片使用的雙獨立匯流排結構,改以個別處理器與晶片組之間細緻的連結和系統的其他部分溝通。2008年的Nehalem處理器在這部分還會有更廣泛的設計變更。
英特爾趕在超微的Barcelona之前,在四向伺服器市場推出四核心晶片。經過半年的延遲,Barcelona終於將在下月中上市。今年稍後(預料會在感恩節之前),英特爾還會針對雙向伺服器推出全新的四核心處理器Penryn

英特爾即將在下週推出新的四核心晶片,"Tigerton" Xeon MP處理器,其PC與伺服器處理器至此全面轉換成Core架構。
Tigerton隸屬於代號"Caneland"的整體平台,是專為搭配四個晶片以上的伺服器所設計的四核心處理器。英特爾準備在下週三(9月5日)先邀請戴爾、惠普、IBM和最近關係良好的昇陽等公司,舉辦一場預覽,正式的公開造勢活動則在隔天展開。英特爾曾說,希望Tigerton在第三季開始出貨,但並未提供確切的日期。
配備Tigerton的伺服器將有強大效能、價格異常昂貴,因此數量相對較少。目前伺服器市場以雙處理器系統佔絕大多數,但四向伺服器市場已有足夠讓硬體商獲利和保持興趣的需求。
高階伺服器市場,也是近年來超微(AMD)的Opteron相對勝出的區塊。戴爾第一款採用Opteron的產品就是四向伺服器。英特爾期望轉換至更省電且更有力的Core架構,能加強在這個區塊的競爭力。當Caneland正式登場時,英特爾在每一個重要市場區塊,都已經有Core架構的產品。
Tigerton也拋棄了四向Netburst晶片使用的雙獨立匯流排結構,改以個別處理器與晶片組之間細緻的連結和系統的其他部分溝通。2008年的Nehalem處理器在這部分還會有更廣泛的設計變更。
英特爾趕在超微的Barcelona之前,在四向伺服器市場推出四核心晶片。經過半年的延遲,Barcelona終於將在下月中上市。今年稍後(預料會在感恩節之前),英特爾還會針對雙向伺服器推出全新的四核心處理器Penryn

英特爾Xeon MP(Multiple Processor)系列之下的首款4核心產品-Xeon 7300系列(代號為Tigerton QC)處理器,搶先在AMD Barcelona發布之前粉墨登場;該系列處理器隸屬於英特爾新一代的Caneland平台,支援Core微架構,同時採用DHSI高速互連技術、FB-DIMM記憶體,究其內涵,實與前一代Xeon 7100系列(代號為Tulsa)所對應的Truland平台架構、DIB雙獨立式匯流排、Registered DDR2記憶體等構造截然不同,故在效能、記憶體容量、虛擬化執行效率等部分,分別出現2倍、4倍、2.5倍不等之增幅,且耗電量也相對下滑,故其整體戰力明顯勝過Tulsa一籌。業者認為,一向採取DIB雙獨立式匯流排架構的英特爾Xeon MP處理器,縱使透過加大L3 Cache容量的作法,期望推升運算效能,然就好比「4輛頂級跑車終究得駛入單一巷道」一般,難免面臨效能上的瓶頸,再加上功耗值也高達150瓦,相形之下,採用直連架構、HyperTransport互連技術、內建記憶體控制器,且功耗略低的AMD Opteron 8000系列處理器,在某種程度上,便相對討喜;故從近2年來IDC所發布的全球市佔統計報告觀之,不難看出,AMD Opteron處理器在4路/多路伺服器的市佔表現,確實較2路、1路等其他領域來得強勁,相對而言,對英特爾Xeon MP處理器的威脅性亦屬最大。緣於此故,甫出爐的Tigerton QC,即便還未走入CSI(Common System Interface)、IMC(Integrated Memory Controller)等威力更加兇猛的新一代架構,然仍透過DHSI、FB-DIMM等架構上的改弦更張,讓英特爾Xeon MP得以走出NetBurst舊式架構,展現出截然不同的風貌,期望蓄積「力抗頑敵」的能量。究其主要的變革,主要在於藉由DHSI,在系統架構中建立了4條速率達1066MT/s的高速連接通路,讓CPU與晶片組之間的溝通更加暢快;此外,其採用第2代I/OAT技術,俾使I/O能直接存取處理器裡頭的Cache,從而降低網路流量的延遲,同時內建64MB容量的窺探過濾器,降低專屬高速連接器之間的窺探流量,且能支援高達256GB容量的FB-DIMM 533MHz記憶體,凡此種種,亦對效能的提振多所助益。Tigerton QC項下包含6款產品,其中時脈最高者為Xeon X7350的2.93GHz,惟其耗電量亦相對較高,來到130瓦水平,至於功耗最低者則為L7345的50瓦,其餘4款則皆為80瓦;與此同時,英特爾亦發布了代號為Tigerton DC的Xeon 7200系列處理器,箇中包含Xeon E7220與E7210,均為雙核心運算架構。值得一提的,由於有低功耗版Tigerton QC-L7345之推出,連帶使得英特爾Xeon MP能夠重返暌違許久的刀鋒伺服器戰場,目前已知包括惠普的BladeSystem c-Class、美超微的SuperBlade,都將推出Tigerton QC刀鋒。

Dunnington

英特爾(Intel)的下一代MP(Multiple Processor)處理器Dunnington,據傳將以3個45奈米Penryn核心的組成方式,在2008年底以前,以6核心的姿態問世,而其將採用Clarksboro晶片組
倘若Dunnington處理器果真內含6個運算單元,則屆時單一4-WAY伺服器,便將集結多達24個核心,致使執行虛擬化、伺服器整合(Server Consolidation)的實力隨之大增

之前我們曾經報導過Intel計劃中存在六核心處理器的消息。日前,一家名為Eclipse Developer's Journal的網站報告了有關這顆神秘處理器的更多細節。據稱,六核心Dunnington是Intel在轉向Nehalem微架構之前的最後一顆Core 2處理器,面向Xeon服務器市場,替代目前的45nm四核心Xeon處理器Harpertown。Dunnington將由Intel位於印度班加羅爾 的研發團隊設計,在一塊郵票大小的芯片內部封裝了三個45nm Penryn雙核處理器核心,共享16MB L


六核心Dunnington是Intel在轉向Nehalem微架構之前的最後一顆Core 2處理器,對象為Xeon伺服器市場,準備取代目前的45nm四核心Xeon處理器Harpertown。Dunnington將由Intel位於印度班加羅爾的研發團隊設計,在一塊郵票大小的晶片內部封裝了三個45nm Penryn雙核處理器核心,共用16MB L3 cache,每兩個核心之間仍然通過前端匯流排進行聯繫。Dunnington將定位於Intel的Caneland伺服器平台,搭配Clarksboro晶片組,和目前的Tigerton處理器實現針腳相容,支援雙路或四路運算。最高可以用他實現單機24核心。據稱,Dunnington儘管不會像Intel的下一代65nm四核安騰處理器(Tukwila)一樣達到20億個電晶體,但最終它內部的電晶體數量也會接近這一恐怖的數字。Intel預計會在首顆Nehalem問世前推出Dunnington,估計會在今年第二第三季度間發佈。它將有不同頻率的多個版本,功耗超過120W