Қабылдамалы және үйлесімді интерфейстер стандарты: Scalable Coherent Interface (SCI)
Scalable Coherent Interface
Scalable Coherent Interface (SCI) – жүйелік жадтың өзара байланысы мен көппроцессорлы жүйелердегі дерек алмасу стандарты. IEEE 1596 стандарты, тарихы & қазіргі алмастырушылары.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Ортақ жадтағы көп өңдеу және хабар алмасу үшін жоғары жылдамдықты өзара байланыс стандарты.
High speed interconnect standard for shared memory multiprocessing and message passing
Шкалалы үйлесімді интерфейс немесе Шкалалы үйлесімді өзара байланыс (SCI) – ортақ жадтағы көп өңдеу және хабар алмасу үшін жоғары жылдамдықты өзара байланыс стандарты. Оның мақсаты – жақсы масштабталуға қол жеткізу, жүйелік жадтың үйлесімділігін қамтамасыз ету және қарапайым интерфейс ұсыну болды; яғни, мультипроцессорлық жүйелердегі қолданыстағы шиналарды, өзінің масштабталу және өнімділік шектеулері жоқ стандартпен алмастыруға бағытталған стандарт. IEEE Std 1596 1992, IEEE Шкалалы үйлесімді интерфейс стандарты (SCI) 1992 жылдың 19 наурызында IEEE стандарттар кеңесімен бекітілді. 1990 жылдары қандай да бір деңгейде қолданысқа енгенімен, кеңінен таралған жоқ және 2000 жылдардың басында басқа жүйелермен ауыстырылды.
The Scalable Coherent Interface or Scalable Coherent Interconnect (SCI), is a high speed interconnect standard for shared memory multiprocessing and message passing. The goal was to scale well, provide system wide memory coherence and a simple interface; i. e. a standard to replace existing buses in multiprocessor systems with one with no inherent scalability and performance limitations. The IEEE Std 1596 1992, IEEE Standard for Scalable Coherent Interface (SCI) was approved by the IEEE standards board on March 19, 1992. It saw some use during the 1990s, but never became widely used and has been replaced by other systems from the early 2000s.
Тарих
1987 жылы Fastbus (IEEE 960) жобасына жауап ретінде Futurebus (IEEE 896) жобасы іске қосылды, бірақ кейбір инженерлер оның 1990 жылдардың басында шығарылған кезде жоғары өнімді есептеу нарығы үшін тым баяу болады деп болжады. Осыған байланысты 1987 жылдың қараша айында «Супербус» зерттеу тобы құрылды. Электр және электроника инженерлері институтының (IEEE) стандарттау қауымдастығының тағы бір жұмыс тобы 1988 жылдың шілдесінде осы нарыққа бағытталған стандартты әзірлеу үшін бөлінді. Бұл, негізінен, Futurebus мүмкіндіктерінің оңай орындалатын, жоғары жылдамдықты жиынтығы болды, сонымен қатар VMEbus сияқты басқа жүйелерге қосылуды жеңілдету үшін шағын толықтырулар енгізілді. Көптеген әзірлеушілердің тәжірибесі жоғары жылдамдықты компьютерлік шиналар саласында болды. Компьютер индустриясы мен ғылыми-зерттеу қауымдастығының компанияларының өкілдері: Amdahl, Apple Computer, BB&N, Hewlett Packard, CERN, Dolphin Server Technology, Cray Research, Sequent, AT&T, Digital Equipment Corporation, McDonnell Douglas, National Semiconductor, Stanford Linear Accelerator Center, Tektronix, Texas Instruments, Unisys, Осло университеті, Висконсин университеті. Бастапқы мақсат – компьютердегі барлық шиналар үшін бірыңғай стандарт жасау еді. Бірақ жұмыс тобы көп ұзамай нүктеден нүктеге байланыс жасау идеясын, оны енгізу сақиналары арқылы жүзеге асыруды ұсынды. Бұл сыйымдылықтың жиналуын, физикалық ұзындықтың/жарық жылдамдығының шектеулерін және параллель транзакцияларға кедерлес болатын түйіршік шағылыстарын болдырмады. Енгізу сақиналарын қолдану идеясын жұмыс тобының алғашқы отырыстарының бірінде Манолис Катевенис ұсынған. Стандартты әзірлеу жөніндегі жұмыс тобын Дэвид Б. Густавсон (төраға) және Дэвид В. Джеймс (орынбасары) басқарды. Дэвид В. Джеймс спецификацияларды жазуға, соның ішінде орындалатын C кодын жазуға үлкен үлес қосты. Осло университетіндегі Штайн Гессинг тобы когеренттілік протоколын тексеру үшін формалды әдістерді қолданды, ал Dolphin Server Technology кэш когеренттілік логикасын қамтитын түйін контроллері чипін жасады. Dolphin Interconnect Solutions, Convex, Data General AViiON (Dolphin кэш контроллері мен сілтеме контроллері чиптерін пайдалана отырып), Sequent және Cray Research сияқты компаниялар SCI-нің әртүрлі нұсқаларын және туындыларын іске асырды. Dolphin Interconnect Solutions PCI және PCI Express интерфейсіне қосылған SCI туындысын жасады, ол біркелкі емес ортақ жадқа қол жеткізуді қамтамасыз етеді. Бұл іске асыру Sun Microsystems компаниясының жоғары деңгейдегі кластерлері, Thales Group және басқа да көптеген компаниялармен, соның ішінде HPC кластерлеуі мен медициналық бейнелеудегі хабар алмасуға арналған қосымшаларда қолданылды. SCI көбінесе біркелкі емес жад архитектураларын іске асыру үшін қолданылды. Sequent Computer Systems компаниясы оны NUMA Q жүйелерінде процессорлық жад шинасы ретінде де пайдаланды. Numascale когерентті HyperTransport интерфейсімен байланысу үшін туындысын жасады.
Soon after the Fastbus (IEEE 960) follow on Futurebus (IEEE 896) project in 1987, some engineers predicted it would already be too slow for the high performance computing marketplace by the time it would be released in the early 1990s. In response, a "Superbus" study group was formed in November 1987. Another working group of the standards association of the Institute of Electrical and Electronics Engineers (IEEE) spun off to form a standard targeted at this market in July 1988. It was essentially a subset of Futurebus features that could be easily implemented at high speed, along with minor additions to make it easier to connect to other systems, such as VMEbus. Most of the developers had their background from high speed computer buses. Representatives from companies in the computer industry and research community included Amdahl, Apple Computer, BB&N, Hewlett Packard, CERN, Dolphin Server Technology, Cray Research, Sequent, AT&T, Digital Equipment Corporation, McDonnell Douglas, National Semiconductor, Stanford Linear Accelerator Center, Tektronix, Texas Instruments, Unisys, University of Oslo, University of Wisconsin. The original intent was a single standard for all buses in the computer. The working group soon came up with the idea of using point to point communication in the form of insertion rings. This avoided the lumped capacitance, limited physical length/speed of light problems and stub reflections in addition to allowing parallel transactions. The use of insertion rings is credited to Manolis Katevenis who suggested it at one of the early meetings of the working group. The working group for developing the standard was led by David B. Gustavson (chair) and David V. James (Vice Chair). David V. James was a major contributor for writing the specifications including the executable C code. Stein Gjessing’s group at the University of Oslo used formal methods to verify the coherence protocol and Dolphin Server Technology implemented a node controller chip including the cache coherence logic. Different versions and derivatives of SCI were implemented by companies like Dolphin Interconnect Solutions, Convex, Data General AViiON (using cache controller and link controller chips from Dolphin), Sequent and Cray Research. Dolphin Interconnect Solutions implemented a PCI and PCI Express connected derivative of SCI that provides non coherent shared memory access. This implementation was used by Sun Microsystems for its high end clusters, Thales Group and several others including volume applications for message passing within HPC clustering and medical imaging. SCI was often used to implement non uniform memory access architectures. It was also used by Sequent Computer Systems as the processor memory bus in their NUMA Q systems. Numascale developed a derivative to connect with coherent HyperTransport.
Транзакциялар
SCI ақпаратты пакеттер түрінде жібереді. Әрбір пакет 16 биттік символдардың үздірілмейтін тізбегінен тұрады. Символға бір жалауша бітеді. Жалауша биттің 0-ден 1-ге өтуі пакеттің басталуын көрсетеді. 1-ден 0-ге өту пакет аяқталуына дейін 1 (эхо үшін) немесе 4 символ бұрын болады. Пакетте адрестік команда мен күй туралы ақпарат, жүк (0-ден бастап, қосымша дерек ұзындығына дейін) және CRC тексеру символы бар тақырып болады. Пакет тақырыбындағы бірінші символ мақсатты түйіннің мекенжайын қамтиды. Егер мекенжай қабылдаушы түйіннің басқаратын доменіне жатпаса, пакет FIFO буфері арқылы шығысқа жіберіледі. Әйтпесе, пакет қабылдау кезегіне жіберіліп, басқа өлшемдегі сақинаға берілуі мүмкін. Барлық пакеттер скрабберден өткен кезде таңбаланады (түйін сақина инициализацияланғанда скраббер ретінде белгіленеді). Жарамсыз мақсатты мекенжайы бар пакеттер екінші рет скрабберден өткен кезде жойылады, әйтпесе сақинаны шексіз айналымға түсетін пакеттермен толуынан сақтау үшін.
SCI sends information in packets. Each packet consists of an unbroken sequence of 16 bit symbols. The symbol is accompanied by a flag bit. A transition of the flag bit from 0 to 1 indicates the start of a packet. A transition from 1 to 0 occurs 1 (for echoes) or 4 symbols before the packet end. A packet contains a header with address command and status information, payload (from 0 through optional lengths of data) and a CRC check symbol. The first symbol in the packet header contains the destination node address. If the address is not within the domain handled by the receiving node, the packet is passed to the output through the bypass FIFO. In the other case, the packet is fed to a receive queue and may be transferred to a ring in another dimension. All packets are marked when they pass the scrubber (a node is established as scrubber when the ring is initialized). Packets without a valid destination address will be removed when passing the scrubber for the second time to avoid filling the ring with packets that would otherwise circulate indefinitely.
Кэштің үйлесімділігі
Кэш-сәйкестік көппроцессорлық жүйелерде деректердің дұрыстығын қамтамасыз етеді. Ертедегі жүйелерде қолданылған ең қарапайым түрі, контексттік ауысулар арасында кэш мазмұнын тазалауға және екі немесе одан көп процессорлар арасында ортақ деректер үшін кэшті өшіруге негізделген. Бұл әдістер кэш пен жад арасындағы өнімділік айырмашылығы бір ретке дейін болған кезде қолданылатын. Қазіргі заманғы процессорлар, кэштері негізгі жадтан екі реттен астам жылдам болатын, деректерді дұрыс ұстау үшін күрделірек әдістерсіз оптималды жұмыс істей алмайды. Бусқа негізделген жүйелер тыңдау (көзбен қадағалау) әдістерін пайдаланады, себебі бустар өзінен хабар таратуға бейім. Нүктеден нүктеге байланысы бар заманауи жүйелер өнімділікті жақсарту үшін тыңдау сүзгілерімен жабдықталған хабар тарату әдістерін қолданады. Хабар тарату мен тыңдаудың кеңейтілу мүмкіншілігі шектеулі болғандықтан, олар SCI-де қолданылмайды. Оның орнына, SCI белгілі бір кэш жолын бөлісетін процессорларды қамтитын түйіндердің тізбекті тізілімі бар, таратылған каталогқа негізделген кэш-сәйкестік протоколын қолданады. Әрбір түйінде негізгі жадқа арналған каталог болады, онда әр жад жолы үшін тегтер бар (кэш жолымен бірдей ұзындықтағы жолдар). Жады тегі тізбектің басына сілтеме жасайды және жолдың күй кодын қамтиды (үш күй – үй, жаңа, кеткен). Әрбір түйінге сондай-ақ, қашықтан алынған деректерді сақтауға арналған кэш қоса беріледі, онда кэш жолын бөлісетін тізбектегі түйіндерге алға және артқа бағытталған сілтемелер болады. Кэш тегі жеті күйге ие (жарамсыз, тек жаңа, басы жаңа, тек лас, басы лас, ортасы жарамды, соңы жарамды). Таратылған каталог кеңейтілуге бейім. Каталогқа негізделген кэш-сәйкестілік үшін қосымша шығындар түйіннің жады мен кэшінің тұрақты пайызын құрайды. Бұл пайыздық көрсеткіш жад үшін шамамен 4%, ал кэш үшін 7% шамасында.
Cache coherence ensures data consistency in multiprocessor systems. The simplest form applied in earlier systems was based on clearing the cache contents between context switches and disabling the cache for data that were shared between two or more processors. These methods were feasible when the performance difference between the cache and memory were less than one order of magnitude. Modern processors with caches that are more than two orders of magnitude faster than main memory would not perform anywhere near optimal without more sophisticated methods for data consistency. Bus based systems use eavesdropping (snooping) methods since buses are inherently broadcast. Modern systems with point to point links use broadcast methods with snoop filter options to improve performance. Since broadcast and eavesdropping are inherently non scalable, these are not used in SCI. Instead, SCI uses a distributed directory based cache coherence protocol with a linked list of nodes containing processors that share a particular cache line. Each node holds a directory for the main memory of the node with a tag for each line of memory (same line length as the cache line). The memory tag holds a pointer to the head of the linked list and a state code for the line (three states – home, fresh, gone). Associated with each node is also a cache for holding remote data with a directory containing forward and backward pointers to nodes in the linked list sharing the cache line. The tag for the cache has seven states (invalid, only fresh, head fresh, only dirty, head dirty, mid valid, tail valid). The distributed directory is scalable. The overhead for the directory based cache coherence is a constant percentage of the node’s memory and cache. This percentage is in the order of 4% for the memory and 7% for the cache.
Мұра
SCI — мультипроцессорлық компьютерлік жүйедегі әртүрлі ресурстарды қосу стандарты болып табылады және ол, мысалы, әртүрлі жүйелерді қосуға арналған Ethernet отбасы сияқты көпшілікке кеңінен танымал емес. Әртүрлі жүйелер өндірушілері өздерінің ішкі жүйелік инфрақұрылымдары үшін SCI-нің әртүрлі нұсқаларын іске асырды. Бұл әртүрлі іске асырулар процессорлар мен жад жүйелеріндегі өте күрделі механизмдермен байланысады, және әрбір өндіруші аппараттық және бағдарламалық қамтамасыз ету үшін белгілі бір деңгейде үйлесімділікті сақтауға тиіс. Густавсон "Scalable Coherent Interface and Serial Express Users, Developers and Manufacturers Association" деп аталатын ұйымды басқарды және 1996 жылдан бастап осы технологияға арналған веб-сайтты жүргізді. 1996 жылы төмен вольтты дифференциалдық сигналдауды қолданатын нұсқа, ал кейін 1996 жылы Ramlink деп аталатын жад интерфейсі пайда болды. 1998 жылдың қаңтар айында SLDRAM корпорациясы құрылды, ол SerialExpress немесе Local Area Memory Port деп аталатын басқа жұмыс тобымен байланысты жаңа жад интерфейсін анықтауға қатысты патенттерді иелену мақсатында құрылды. Алайда, 1999 жылдың басында жаңа жад стандартынан бас тартылды. 1999 жылы SCI туралы бірқатар мақалалар кітап түрінде жарық көрді. Халықаралық Электротехникалық Комиссия (IEC) Халықаралық Стандарттау Ұйымы (ISO) аясында 2000 жылдың шілдесінде ISO/IEC 13961 ретінде жаңартылған сипаттаманы жариялады.
SCI is a standard for connecting the different resources within a multiprocessor computer system, and it is not as widely known to the public as for example the Ethernet family for connecting different systems. Different system vendors implemented different variants of SCI for their internal system infrastructure. These different implementations interface to very intricate mechanisms in processors and memory systems and each vendor has to preserve some degrees of compatibility for both hardware and software. Gustavson led a group called the Scalable Coherent Interface and Serial Express Users, Developers, and Manufacturers Association and maintained a web site for the technology starting in 1996. a version using low voltage differential signaling in 1996, and a memory interface known as Ramlink later in 1996. In January 1998, the SLDRAM corporation was formed to hold patents on an attempt to define a new memory interface that was related to another working group called SerialExpress or Local Area Memory Port. However, by early 1999 the new memory standard was abandoned. In 1999 a series of papers was published as a book on SCI. An updated specification was published in July 2000 by the International Electrotechnical Commission (IEC) of the International Organization for Standardization (ISO) as ISO/IEC 13961.