SlideShare a Scribd company logo
1 of 78
Download to read offline
6.1.1. Компьютер
Компьютер нь маш олон тооны элементүүдээс тогтсон комплекс байгууламж.
Компьютерээр хийгдэж байгаа бүхий л үйлдлүүдийг ерөнхийд нь дараах байдлаар ангилж болно.
Үүнд: /зураг 6.1/
Өгөгдлийг боловсруулах
Өгөгдлийг хадгалах
Өгөгдлийг шилжүүлэх
Хяналтын хэсэг буюу дээрх хэсгүүдийн үйл ажиллагааг хянаж холбож өгөх зориулалттай
зураг 6.1.
Эндээс үзвэл компьютер дээр дараах 4 үндсэн үйлдэл хийгдэж байна.
Аль нэг төхөөрөмжөөс ирсэн өгөгдлийг өөр төхөөрөмж рүү шилжүүлэх /зураг 6.2/
Аль нэг төхөөрөмжөөс ирсэн өгөгдлийг хадгалах, эсвэл хадгалсан өгөгдлийг аль нэг төхөөрөмж
рүү илгээх /зураг 6.3/
Санах ойд хадгалсан өгөгдлийг боловсруулаад буцааж хадгалах /зураг 6.4/
Гаднаас ирсэн өгөгдлийг боловсруулаад хадгалах, эсвэл хадгалсан өгөгдлийг боловсруулаад
өөр төхөрөөмж рүү илгээх /зураг 6.5/
зураг 6.2. зураг 6.3.
219
зураг 6.4. зураг 6.5.
6.1.2. Компьютерийн товч түүхээс
Компьютерийн 1-р үе буюу электрон лампны үе: (1945-58)
ENIAC
зураг 6.6.
Pennsylvania-ийн их сургуульд 1943 онд 10-тын тооллын системд
архиметик үйлдэл хийх боломжтой, электрон лампнууд ашигласан
байгууламжийг хийж 1946 онд дуусгажээ. Энэ нь 18000 электрон ламп,
70000 резистор, 10000 конденсатор, 6000 switch, 1500 релей
ашигласан, асар том буюу 30х60 feet хэмжээтэй, 30 тонн жинтэй,
140kW тэжээл шаарддаг аварга байгууламж байв. Энэ байгууламжийг
switch-үүдийн тусламжтайгаар программчлах боломжтой бөгөөд үр
дүнг хадгалах 20 accumulator-тай (регистертэй), 1 секундэд 5000
үйлдэл хийх чадвартай байв. (зураг 6.6) Энэ байгууламжийг 1955 он
хүртэл ашиглаж байв.
IAS компьютер буюу Von Neumann-ий компьютер
ENIAC бүтээгдэхүүнд программыг оруулах, өөрчлөхөд нэлээд түвэгтэй байсан. Программ нь
тусгай санах ойд хадгалагдах бөгөөд эндээс программуудыг дуудан ажиллуулдаг байв. ENIAC
төслийн программыг хадгалах хэсэгт зөвлөгчөөр ажиллаж байсан математикч Von Neumann
1946 онд өөрийн нөхдийн хамт IAS компьютерийг хийх загварыг гаргажээ. (6.6. IAS компьютер
гэдгээс дэлгэрэнгүйг унш). Гэхдээ энэ компьютер нь бүрэн хийгдээгүй бөгөөд 1952 он гэхэд
түүний туршилтын загварыг л (EDVAC) хийсэн юм. Иймээс Von Neumann-ий IAS компьютер нь
орчин үеийн компьютер ямар зохион байгуулалттай, хэрхэн программыг хадгалах, түүнийг
гүйцэтгэх зэргийг тодорхойлж өгсөн загвар болон үлджээ. Үүнийг орчин үеийн компьютерийн
анхны эцэг ч гэж нэрлэдэг. Энэ компьютер нь өгөгдөл болон зааврыг хадгалахад зориулагдсан
тусгай санах ойтой, санах ойн тус тусдаа хаягтай үүрнүүдээс тогтдог, архимтетик логик нэгж
нь 2-тын тооллын системд үйлдэл гүйцэтгэдэг байв.
UNIVAC
1950-аад оны сүүлээр Sperry ба IBM гэсэн компьютер үйлдвэрлэдэг анхны 2 компани үүсэж бий
болов.
1947 онд Eckert, Mauchly нар анхны Eckert-Mauchly Computer Corporation-ийг үндэслэн
байгуулжээ. Энэ корпорациас гаргасан анхны бүтээгдэхүүн нь UNIVAC I (Universial Automatic
Computer) компьютер байлаа. Удалгүй энэ корпорациас UNIVAC төслийг аван Sperry-Rand
Corporation салан гарч UNIVAC серийн компьютеруудыг цаашид үргэлжлүүлэн бүтээжээ.
Удалгүй UNIVAC I-ийг сайжруулсан хурдтай, санах ойн хэмжээ ихтэй UNIVAC II компьютерийг
бүтээснээр анхны бизнэсийн зорилгоор бүтээгдсэн компьютерууд худалдаанд гарсан юм. Мөн
Sperry-гийнхэн UNIVAC-ийн 1100 цувралыг гаргасан юм. Энэ цувралын анхных нь UNIVAC 1103
загвар бөгөөд олон жил эрдэм шинжилгээний зорилгоор ашиглагдаж байжээ.
220
IBM 700
Энэ үед буюу 1953 онд IBM-ийнхэн анхны компьютер болох IBM 701 компьютерээ гаргажээ.
Үүнийг эрдэм шинжилгээ, судалгааны зорилгоор ашиглаж байв. 1955 онд дараагийн IBM 702
компьютерийг худалдаанд зориулан гаргажээ.
Floating Point архиметик
IBM-ийн 704 компьютер нь зөвхөн бүхэл тооны хувьд архиметикийн үйлдлийг гүйцэтгэхээс
гадна Floating Point үйлдлийг гүйцэтгэдэг (Gene Amdahl) байв.
Компьютерийн 2-р үе буюу транзисторын үе: (1958-64)
1947 онд Bell Labs-д анхны транзисторыг хийсэн нь электроникийн түүхэнд электрон лампыг
транзистороор сольсон шинэ эргэлт гаргажээ. Энэ нь мөн адил компьютерийн нэгэн шинэ үе
эхэлснийг зарлажээ. Гэхдээ энэ үед зохиогдож байсан компьютерууд жишээ IBM 700 серийн
компьютерууд шинэ технологийг авч ашиглаагүй юм.
1957 онд DEC корпораци байгуулагдаж тэр жилдээ анхны миникомпьютер болох PDP-1
компьютерээ гаргажээ.
IBM-ийнхэн 1960 оноос эхлэн IBM 7000 серийн компьютерээ хийж эхэлсэн. Энд 1960 онд 7090,
1962 онд 7094 I, 1964 онд 7094 II компьютерээ тус тус гаргасан бөгөөд эдгээр нь транзистор
дээр үндэслэгдсэн байв.
Виртуал ой ба pipeline
1962 онд Tom Kilburn-ий зохиосон Atlas компьютер нь анх виртуал санах ой, зааврыг биелүүлэх
дамжлага pipeline-ийг ашигласан.
Мультпроцессор
1964 онд гарсан UNIVAC-ийн 1108II загвар нь 3 микропроцессорыг ашигладаг.
Компьютерийн 3-р үе буюу интегралчлагч хэлхээний үе: (1964-74)
2-р үеийн компьютерууд нь ойролцоогоор 10000 транзистор ашиглаж байсан бөгөөд энэ тоо нь
цаашид ч өсөхөөр байсан нь компьютер үйлдвэрлэгчдийн хувьд шийдвэрлэвэл зохих асуудлын
нэг болжээ. Энэ үед 1958 онд анхны интегралчлагч хэлхээг зохиосноор микроэлектроникийн үе
эхлэв. Интегралчлагч хэлхээ нь нэг chip-д асар олон транзисторыг багтаах боломжийг
олгосноор компьютерийн овор хэмжээг багасгах боломжтой болжээ. Жишээ нь SSI (small scale
intergation) нь 10 хүртэл транзистор, MSI (medium scale integration) нь 10-аас 100 хүртлэх
транзистор, LSI (large scale integration) 100-гаас 1000 хүртлэх транзисторыг нэг chip дээр
агуулж байв.
Энэ шинэ технологийг ашигласан анхны компьютерууд нь IBM System 360/370, DEC PDP-8
компьютерууд юм. Энэ үеэс эхлэн бүх компьютерууд нэгэн ижил бүтэцтэй болсон. Өөрөөр
хэлбэл компьютерийг үйлдвэрлэдэг олон компаниуд байдаг ч тэдгээрийн үйлдвэрлэсэн
компьютерууд нь ижил архитектуртай болсон.
1964 онд IBM-ийнхэн 7000 хувилбараа гаргасан тэр жил өөр нэгэн урсгалыг гаргажээ. Энэ нь
IBM System/360 юм. Ингээд ердөө хэдхэн жилийн дотор үүний нэлээд хэдэн хувилбар болох
Model 30, 40, 50, 65, 75 гэсэн хувилбаруудыг гаргасан юм. IBM-ийнхэн System/360-ийг хийсэн
тэр жил DEC-ийнхэн PDP-8 гэсэн анхны миникомпьютерийг гаргажээ. (зураг 6.7)
зураг 6.7.
Хагас дамжуулагч санах ой
Энэ үеийн компьютеруудын хувьд гарсан нэг дэвшил нь хагас дамжуулагч санах ойг ашиглах
болсон явдал. 1970 оноос хойш хагас дамжуулагч санах ойн хувьд 8 үе өнгөрчээ. Эдгээр
үеүдэд нэг chip-д 1K, 4K, 16K, 64K, 256K, 1M, 4M, 16M битүүдийг багтааж байв.
Кэш ой
IBM System/360-ийн 85-р загвар нь үндсэн санах ой болон микропроцессорын хооронд
өгөгдлийг дамжуулалтыг хурдасгах зорилгоор кэш ойг ашигласан.
Микропроцессор
3-р үеийн компьютеруудын хувьд гарсан өөр нэг дэвшил нь микропроцессорыг хийсэн явдал
юм.
221
1971 онд Intel анхны микропроцессор болох 4004-ийг гаргасан бөгөөд энэ нь CPU түүний бүх
бүрэлдэхүүнүүдийг нэг chip-д багтаасан тул анхны микропроцессорын эцэг болсон юм. Энэ нь 4
битийн 2 тоог хооронд нэмэх үйлдлийг гүйцэтгэж байв.
1972 онд 8 битийн 8008 микропроцессороо гаргасан бөгөөд энэ нь 2 ширхэг 4004-ийг ашиглаж
байв. Эдгээр микропроцессоруудыг судалгаа шинжилгээний зорилгоор л ашиглаж байсан бол
1974 онд микрокомпьютерт зориулан анхны 8 битийн 8080 микропроцессорыг гаргажээ. Энэ
үеэс эхлэн Intel-ийнхэн 80x86 серийн процессоруудаа үйлдвэрлэж эхэлжээ. Жишээ нь 1978 онд
16 битийн 8086, 1985 онд 32 битийн 80386, 2003 онд 64 битийн Itanium процессороо тус тус
бүтээжээ.
PowerPC
1975 онд IBM-ийнхэн анхны миникомпьютер болох RISC технологийг ашигласан IBM 801
загварыг хийжээ. Энэ нь RISC I процессорыг ашиглаж байв. Гэсэн ч 801 загвар нь бүрэн төгс
хийгдээгүй зөвхөн туршилтын загвар төдий байсан юм. Ингээд худалдаанд зориулан 1986 онд
анхны RISC workstation болох RT PC-ийг гаргажээ. Гэвч энэ нь амжилттай болсонгүй. 1990 онд
өмнөх загваруудыг ашиглан IBM RISC system/6000-ийг бүтээснээр цаашид өндөр хурдтай
workstation-уудыг үйлдвэрлэх эхлэлийг тавьжээ. Удалгүй IBM Motorolа нар хамтран Motorola-
гийн гаргасан 68000 серийн микропроцессоруудыг үйлдвэрлэж эхэлсэн бөгөөд Apple-ийнхан
Motorola chip-ийг ашигласан Macintosh компьютерийг үйлдвэрлэх болжээ. Эдгээр компьютерууд
нь PowerPC архитектуртай анхны компьютерууд юм. Тун удалгүй PowerPC архитектуртай 4
загварыг гаргасан нь 601 (32 битийн анхны загвар), 603 (энгийн хэрэглэгч нарт зориулсан үнэ
хямдтай загвар), 604 (серверүүдэд зориулан өндөр хүчин чадалтай загвар), 620 (64 битийн
анхны загвар)
Компьютерийн 4-р үе буюу VLSI-ийн үе: (1971-ээс одоог хүртэл)
Нэг chip-д багтах транзисторын хэмжээг 10000-100000 хүртэл ихэсгэж чадсан энэ үеийн
компьютеруудыг 4-р үеийн компьютерууд гэдэг. Энэ үеийн анхны компьютерууд нь IBM 3090,
Cray XMP, IBM PC нар юм. Энэ үеийн компьютеруудын гол дэвшил нь компьютерийн сүлжээ,
оптик диск, обьект хандалттай программчлал юм.
Компьютеруудын 5-р үе буюу ULSI-ийн үе:
Нэг chip-д багтах транзисторын тоо 100000-1000000 болтол ихэссэн. Хамгийн гол дэвшил нь
параллель систем, параллель программчлал юм. Энэ үеийн компьютерийн гол төлөөлөгч нар
нь Sun Spare, Intel Paragon нар юм. Энэ үеийн компьютеруудын хурдны гол үзүүлэлт нь нэг
секундэд гүйцэтгэх floating point архиметикийн үйлдэл MFLOPS (millions of floating point
operations per second) юм.
6.2.1. Компьютерийн бүтэц
Компьютерийг дараах 4 үндсэн хэсгээс тогтдог гэж үзэж болно. /зураг 6.8/
Микропроцессор буюу Central Processing Unit (CPU) – өгөгдлийг боловсруулах хэсэг
Санах ой буюу Main Memory - өгөгдлийг хадгалах хэсэг
Оролт/гаралтын хэсэг буюу Input/Output – микропроцессор болон бусад төхөөрөмж (монитор,
гар, хэвлэх төхөөрөмж г.м)-ийн хооронд өгөгдлийг дамжуулах хэсэг
Системийн холболт буюу System Interconnection – дээрх гурван хэсгийг хооронд холбож өгөх
зориулалттай хэсэг
222
зураг 6.8.
6.2.2. Компьютерийн заавар
Компьютерээр гүйцэтгэх үндсэн үйлдэл нь программыг биелүүлэх явдал юм. Программууд нь санах
ой дахь заавруудын (instruction) тусламжтайгаар гүйцэтгэгдэнэ.
Өөрөөр хэлбэл компьютер дээрх хийгдэх бүхий л үйлдлүүд нь тусгайлан тодорхойлогдсон
заавруудын дагуу биелэгддэг гэж үзэж болно. Эдгээр зааврууд нь санах ойд хадгалагдаж байдаг.
Хамгийн энгийн байдлаар программыг авч үзвэл эхлээд хэрэгтэй зааврыг санах ойгоос олж авах,
дараа нь тухайн зааврыг гүйцэтгэх буюу биелүүлэх, дараа нь дараагийн үйлдэл гүйцэтгэхэд
шаардлагатай зааврыг санах ойгоос олж авах. Тэгвэл программыг дэс дараалсан заавруудыг
биелүүлэх явц гэж ойлгож болно. Нэг зааврыг биелүүлэх явцыг зааврын цикл (instruction cycle) гэж
нэрлэнэ. Зааврын нэг цикл нь зааврыг санах ойгоос олж авах fetch (барьж авах) cycle, зааврыг
гүйцэтгэх буюу биелүүлэх execute (гүйцэтгэх) cycle гэсэн 2 дэд хэсгээс тогтно. /зураг 6.9/
зураг 6.9.
Зааврын цикл нь үндсэндээ дараах шатаар явагдана. /зураг 6.10/
Зааврын хаягийг тогтоох – зааврын санах ойд байрлах хаягийг тогтооно.
Зааврыг олж авах – санах ойгоос зааврыг олж авна.
Зааврын үйлдлийг тогтоох – зааврын opcode-ийн тусламжтайгаар тухайн заавраар гүйцэтгэх
үйлдлийг тогтооно.
Өгөгдлийн хаягийг тогтоох – тухайн зааврын дагуу боловсруулах өгөгдлийн санах ой дахь
хаягийг тогтооно.
Өгөгдлийг олж авах – санах ойгоос өгөгдлийг олж авна.
Өгөгдлийг боловсруулах – тухайн зааврын дагуу өгөгдлийг боловсруулна.
Үр дүнг хадгалах хаягийг тогтоох – тухайн зааврын дагуу боловсруулсан үр дүнг хадгалах
санах ойн хаягийг тогтооно.
Үр дүнг хадгалах - өмнөх үйлдлээр тогтоосон хаягийн дагуу үр дүнг хадгална.
223
зураг 6.10.
6.2.3. Регистер
Процессор нь үйлдлийг гүйцэтгэхдээ дараах регистерүүдийг санах ойн журмаар ашиглана:
Memory Address Register (MAR) – санах ойгоос MBR рүү унших болон бичих үгийн санах ойд
дахь хаягийг агуулна.
Memory Buffer Register (MBR) – санах ойгоос унших болон бичих үгийг агуулна.
Program Counter (PC) – дараагийн биелүүлэх зааврын хаягийг тогтооно.
Instruction Register (IR) – заавраар гүйцэтгэх үйлдлийг тогтооно.
Accumuliator (AC) – ALU үйлдлийг гүйцэтгэсний дараа үр дүнг хадгалахад хэрэглэнэ.
Заавар ба өгөгдөл нь адилхан 16 битийн урттай байна гэж үзье. Тэгвэл санах ойн нь 216
үүртэй
байх ба санах ойн нэг үүр нь 16 битийн урттай байна. Үүнийг үг (word) гэж нэрлэнэ. Өөрөөр
хэлбэл санах ойн нэг үүрэнд байрлах зүйлийг үг гэнэ. Санах ойн нэг үгэнд заавар ч байж болно,
өгөгдөл ч байж болно. Заавар үг нь тухайн заавраар гүйцэтгэх ёстой үйлдлийг тодорхойлсон op
code (үйлдлийн код) ба тухайн зааврын санах ойд байрлах хаяг гэсэн 2 мэдээллийг агуулна.
Жишээлбэл заавар 16 битийн урттай бөгөөд түүний эхний 4 битийг op code, сүүлийн 12 битийг
хаяг эзэлдэг гэвэл заавар нь 24
=16 ялгаатай op code-той, 212
=4096 (4K) хаягтай байна.
РС нь дараагийн үйлдэл гүйцэтгэх ёстой зааврын санах ой дахь хаягийг тогтооно. Иймээс РС нь
хэрэгтэй зааврыг олж авсны дараагаар дараагийн шаардлагатай зааврын хаягаар үргэлж
шинэчлэгдэж байдаг.
IR нь тухайн олж авсан зааврын дагуу ямар үйлдэл хийх ёстойг тогтоож өгнө. Энд зааврын
гүйцэтгэх үйлдлийг тодорхойлсон оpсode агуулагддаг.
MAR шууд address bus-тай, MBR шууд data bus-тай холбогдсон байна.
АС нь ALU-гаар боловсруулагдсан үр дүнг хадгална.
Жишээ 6.1.
Заавар нь санах ойн 300 гэсэн хаягтай үүрт хадгалагдаж байг. Тэгвэл энэ үүрт байгаа зааврыг IR-д
татан аваачих бөгөөд энд тухайн зааврыг ямар үйлдэл гүйцэтгэхийг тогтоож өгнө. Харин РС нь
дараагийн зааврын хаягаар шинэчлэгдэнэ. /зураг 6.11/
зураг 6.11.
Үүнээс гадна дараах регисторүүд процессор дотор агуулагдаж байдаг.
I/O Address Register (I/O AR) – гадаад төхөөрөмж рүү хандах хаягийг агуулна.
I/O Buffer Register (I/O BR) – CPU болон I/O module 2-ын хооронд өгөгдөл дамжуулахад ашиглана.
АС – Accumulator нь ихэвчлэн ALU уруу оруулах өгөгдлийг түр хадгалахад ашиглана.
Жишээ 6.2.
2 тоог хэрхэн нэмэхийг авч үзье. Энэ үйлдлийг хийхэд шаардлагатай эхний зааврын хаягийг PC
олж тогтоох ба энэ заавар нь санах ойн 300 гэсэн үүрэнд байг. РС зааврын хаягийг тогтоосноор
энэ зааврыг Instruction Register (IR)–д дуудаж ачаална. IR-д ирсэн зааврын эхний 4 битийн буюу
opcode-ийн тусламжтайгаар энэ заавраар хийх үйлдлийг тогтооно. Дараагийн 12 битийн
тусламжтайгаар энэ үйлдлийг гүйцэтгэхэд ашиглагдах өгөгдлийн санах ой дахь хаягийг тогтооно.
Энэ жишээнд санах ойн 300-р үүрэнд байрлах зааврын opcode нь 1, санах ойн хаяг нь 940 байна.
224
Энэ заавар нь санах ойн 940-р үүрэнд байрлах өгөгдлийг АС-д ачаалах гэсэн үйлдэл байна. /зураг
6.12/
зураг 6.12.
Үүний дараа РС шинэчлэгдэнэ. Өөрөөр РС нь дараагийн зааврын хаягийг тогтоох ба энэ заавар нь
санах ойн 301-р үүрэнд байрлана. Энэ заавар нь санах ойн 941-р үүрэнд байрлах өгөгдлийг АС-д
байгаа утган дээр нэмэх үйлдэл байна. /зураг 6.13/
зураг 6.13.
Дараагийн зааврыг РС тогтоох ба энэ заавар нь санах ойн 302-р үүрэнд байрлана. Энэ заавар нь
АС-д байгаа өгөгдлийг санах ойн 941-р үүрэнд бичих үйлдэл байна. /зураг 6.14/
зураг 6.14.
Дээрх жишээнд 3 заавар хэрэглэгдлээ. Энэ 3 зааврын op code нь дараах утгатай байлаа.
110=000116 – санах ойгоос АС уруу ачаалах
210=001016 – АС-гээс санах ой уруу бичих
510=010116 – санах ойд байгаа утгыг АС-д байгаа утганд нэмэх
Мөн дээрх жишээнд ойлгоход хялбар байх үүднээс бусад шаардлагатай регистерүүд болох MAR,
MBR-ийг тооцсонгүй.
6.2.4. IAS компьютер
1946 онд математикч von Neumann болон түүний нөхөд ENIAC төсөл дээр ажиллаж байхдаа үйлдэл
гүйцэтгэх болон хадгалах чадвартай нэгэн шинэ компьютер зохиосон бөгөөд түүнийгээ IAS
компьютер гэж нэрлэжээ.
IAS компьютер нь дараах хэсгүүдээс тогтно: /зураг 6.15/
Үндсэн санах ой буюу Main Memory - өгөгдөл (data) болон заавар (instruction)-ыг хадгална.
Арифметик логик хэсэг буюу Arithmetic Logic Unit (ALU) - өгөгдлийг боловсруулна.
Хяналтын хэсэг буюу Control Unit – санах ойгоос зааврыг олж авах, түүнийг түүнийг биелүүлэх
зэрэг бүхий л үйлдлийг хянана.
Оролт/гаралтын хэсэг буюу Input/Output Equipment – компьютерийг бусад төхөөрөмжүүдтэй
холбох зориулалттай гэсэн 4 хэсгээс тогтно.
225
зураг 6.15.
IAS-ийн санах ой нь өгөгдөл санаж хадгалахад зориулагдсан 1000 үүртэй бөгөөд нэг үүрэнд 40
битийн мэдээлэл байрлана. Үүнийг нь үг (word) гэнэ. Иймнээс IAS-ийн хувьд 1 үг нь 40 бит урттай
байх ба энд өгөгдөл (data) ба заавар (instruction)-ын аль нэг нь байрлана.
Жишээ нь өгөгдөл нь тоо (number word) байвал эхний бит нь sign bit (тоог нэмэх хасах болохыг
тогтоох), үлдсэн хэсэг нь тоог, харин заавар (instruction word) бол тус бүр нь 20 битийн урттай
зүүн ба баруун гэсэн 2 заавраас тогтоно. Өөрөөр хэлбэл IAS-ийн заавар нь 20 битийн урттай байх
бөгөөд санах ойн нэг үүрэнд 2 заавар байрлана. Зааврын эхний 8 битийг тухайн заавраар
гүйцэтгэх үйлдлийг тодорхойлсон opcode, үлдсэн 12 битийг тухайн зааврын дагуу үйлдлийг
гүйцэтгэхэд ашиглагдах санах ойн хаягийг агуулна. (зураг 6.16)
зураг 6.16.
IAS компьютерт дараах санах ой буюу регистерүүдийг ашиглана. (зураг 6.17)
Memory Buffer Register (MBR) – санах ойгоос унших болон бичих үгийг хадгална.
Memory Address Register (MAR) – MBR рүү унших болон бичих үгийн санах ой дахь хаягийг
хадгална.
Instruction Register (IR) – тухайн зааврын дагуу гүйцэтгэх үйлдлийг тодорхойлсон opcode-ийг
агуулна.
Instruction Buffer Register (IBR) – санах ойгоос татан авсан үгэнд багтах заавруудын
ашиглаагүй үлдсэн зааврыг нь хадгална.
Program Counter (PC) – дараагийн зааврын санах ой дахь хаягийг тогтооно.
Accumulator (AC) and Multiplier-Quotient (MQ) – ALU-гийн гүйцэтгэсэн үйлдлийн үр дүнг
хадгална. Үндсэн 40 битийг АС-д, үлдсэн хэсгийг нь MQ-д хадгална.
226
зураг 6.17.
Ямар нэгэн үйлдлийг тодорхойлсон зааврыг биелүүлэх үйл явцыг зааврын цикл (instruction cycle)
гэх бөгөөд дараах 2 хэсгээс тогтно. Үүнд:
Зааврыг олж авах (fetch instruction) - Зааврыг IBR-д хадгалагдаж байгаа заавар эсвэл санах
ойгоос MBR-ийн рүү ачаалагдсан үгнээс олж авна. Ингээд IR уруу зааврын opcode-ийг, MAR
уруу тухайн заавоын санах ой дахь хаягийг нь илгээнэ. Хэрэв зааврыг санах ойгоос MBR уруу
ачаалагдсан үгнээс олсон бол үлдэх зааврыг IBR уруу хуулна.
Зааврыг биелүүлэх (executed instruction) - IR дэх зааврын opcode-ийн дагуу ALU үйлдлийг
гүйцэтгээд үр дүнг АС болон MQ-д хадгална. Дараагийн үйлдлийг гүйцэтгэх зааврыг PC
тогтоож энэ зааврын хаягийг MAR рүү илгээнэ.
Жишээ нь IAS-ийн зааврыг барьж авах цикл нь дараах шатаар явагдана. /зураг 6.18/
Дараагийн заавар IBR-д байгаа эсэийг шалгана.
Хэрэв дараагийн заавар IBR-д байвал заавал санах ой уруу хандах шаардлагагүй болно. IBR-д
байгаа зааврын opcode-ийг IR-д, хаягийн хэсгийг MAR-д хуулна. Энэ заавар нь зүүн заавар
байвал зааврын op code нь 0-оос 7-р бит, хаяг нь 8-аас 19-р бит байна. Ингээд PC
шинэчлэгдсэнээр зааврыг барих цикл дуусна.
Харин дараагийн заавар IBR-д байхгүй бол PC-гээс зааврын хаягийг MAC уруу хуулна.
Дараа нь санах ойгоос MAC-аас авсан хаягтай санах ойн үүрэнд байрлах үгийг MBR уруу
хуулна. Энд M(MAC) гэдэг нь санах ойн MAC гэсэн хаяганд байгаа үг гэж ойлгоно.
MBR-д хуулсан үг нь 2 заавраас тогтсон байх тул аль заавар нь хэрэгтэй болохыг тогтооно.
Үүний тулд ашиглах ёстой заавар маань зүүн заавар нь мөн эсэхийг шалгана.
Хэрэв зүүн заавар мөн бол IBR-д баруун зааврыг хуулна. Энэ заавар нь 20-оос 39-р битэд
багтсан байна. Мөн зүүн зааврын opcode-ийг IR-д, хаягийн хэсгийг MAR-д хуулна. Зүүн
зааврын op codeнь 0-оос 8-р бит, хаягийн хэсэг нь 9-өөс 19-р битэд байрласан байна.
Ингэснээр зааврыг барих цикл дуусаж PC шинэчлэгдэнэ.
Харин зүүн заавар биш бол баруун зааврын opcode-ийг IR-д, хаягийн хэсгийг MAR-д хуулна.
Баруун зааврын opcode нь 20-оос 27-р бит, хаягийн хэсэг нь 28-өөс 39-р битэд байрласан
байна. Ингээд PC шинэчлэгдсэнээр зааврыг барих цикл дуусна.
227
зураг 6.18.
IAS-д нийтдээ өгөгдлийг дамжуулах, word-д ирсэн 2 зааврыг салгах, арифметикийн (нэмэх, хасах,
үржүүлэх, хуваах), хаягийг өөрчлөх зэрэг үйлдэл гүйцэтгэхийг тодорхойлсон 21 зааврыг ашиглана.
Зааврын төрөл Op code Ассемблер Тайлбар
Дамжуулах 00001010 LOAD MQ MQ-д байгаа өгөгдлийг АС-д хуулна
00001001 LOAD MQ, M(X) Санах ойн Х хаяганд байгаа үгийг MQ-д хуулна
00100001 STOR M(X) AC–д байгаа зүйлийг санах ойн Х хаяганд хадгална
00000001 LOAD M(X) M(X)-ийг АС уруу хуулна
00000010 LOAD –M(X) -M(X)-ийг АС уруу хуулна
00000011 LOAD |M(X)| M(X)-ийн абсолют утгыг АС уруу хуулна
00000100 LOAD -|M(X)| M(X)-ийн абсолют утгын сөргийг АС уруу хуулна
Branch 00001101 JUMP M(X,0:19) M(X)-ийн зүүн хэсгээс дараагийн зааврыг олж авна
00000100 JUMP M(X,20:39) M(X)-ийн баруун хэсгээс дараагийн зааврыг олж авна
00001111 JUMP+ M(X,0:19)
Хэрэв AC-ийн утга негатив биш бол дараагийн зааврыг M(X)-ийн зүүн
хэсгээс олж авна
00010000 JUMP+ M(X,20:39)
Хэрэв АС-ийн утга негатив биш бол дараагийн зааврыг M(X)-ийн баруун
хэсгээс олж авна
Архиметик 00000101 ADD M(X) AC AC+M(X) буюу АС дээр M(X)-г нэмээд гарсан үр дүнг АС-д хадгална
00000111 ADD |M(X)| AC AC+|M(X)|
00000110 SUB M(X) AC AC-M(X)
00001000 SUB |M(X)| AC AC-|M(X)|
00001011 MUL M(X) AC AC*M(X)
00001100 DIV M(X) AC AC/M(X)
00010100 LSH Shift left буюу АС-ийн утгыг зүүн тийш 1 байрлалаар шилжүүлнэ
00010101 RSH Shift right буюу АС-гийн утгыг баруун тийш 1 байрлалаар шилжүүлнэ
Хаягийг өөрчлөх 00010010 STOR M(X,8:19) Санах ойн Х хаягтай үүрний зүүн хэсэгт АС-д байгаа өгөгдлийг хадгална
00010011 STOR M(X,28:39)
Санах ойн Х хаягтай үүрний баруун хэсэгт АС-д байгаа өгөгдлийг
хадгална
228
6.2.5. Тасалдал
Компьютерийн хэвийн үйл ажиллагааг хангах зорилгоор процессорын гүйцэтгэх зааврыг таслах
шаардлага заримдаа гардаг. Жишээлбэл арифметикийн overflow, тоог тэгд хуваах зэрэг
үйлдлүүдийг гүйцэтгэхийг оролдох, I/O контоллертой харилцах үед алдаа гарах, санах ойд алдаа
гарсан г.м тохиолдлуудад процессорын үйлдлийг тасалж санах ойг чөлөөлж өгөх шаардлагатай
болдог. Мөн түүнчлэн тасалдлыг процессорын хурдыг бүрэн ашиглахад ашигладаг. Өөрөөр хэлбэл
ихэнх гадны төхөөрөмжүүдийн хурд процессорын хурднаас олон дахин бага байдаг. Жишээлбэл
процессор өгөгдлийг хэвлэх төхөөрөмж рүү илгээсэн тохиолдолд принтер өгөгдлийг барьж автал
процессор пауз авдаг. Өөрөөр хэлбэл аливаа бичих үйлдлийн дараа процессор хэсэг хугацаанд сул
зогсоно. Процессорын гүйцэтгэх аливаа үйлдэл нь дэс дараалсан заавруудыг гүйцэтгэх явдал
байдаг тухай үзсэн. Хэдийгээр процессор нэг секундын хугацаанд хэдэн мянган цикл хийж амждаг
ч гадны төхөөрөмж рүү өгөгдөл бичих хугацаанд процессор ямар нэгэн үйлдэл гүйцэтгэдэггүй.
Гэтэл энэ хугацаанд процессор өөр ямар нэгэн заавруудыг биелүүлэх боломжтой байдаг. Ийм
тохиолдлуудад тасалдлыг ашиглана. Тасалдал нь процессорын гүйцэтгэх үйлдлийг зогсооно.
Жишээ нь тасалдал ашиглаагүй тохиолдолд оролт гаралтын төхөөрөмжийг ашиглах явц нь дараах
байдалтай байна. Энд хэрэглэгчийн программ нь ямар нэгэн үйлдлийг гүйцэтгэсний дараа гарсан
үр дүнг оролт гаралтын төхөөрөмжид бичдэг байг. Тэгвэл эхлээд түүн рүү өгөгдлийг дамжуулна,
дараа нь тухайн төхөөрөмжид өгөгдлийг бичнэ, эцэст нь эргэн процессор уруу хандана. Эндээс
үзвэл оролт гаралтын төхөөрөмжид өгөгдлийг бичих үед процессор ямар нэгэн үйлдэл
гүйцэтгэхгүй хүлээж байдаг байх нь. /зураг 6.19/
зураг 6.19.
Хэрэв тасалдал ашигласан тохиолдолд үйлдлийг гүйцэтгэсний дараа үр дүнг оролт гаралтын
төхөөрөмж рүү дамжуулна. Дараа нь төхөөрөмжид өгөгдлийг бичиж эхлэх үед тасалдал ашиглан
процессор үйлдлийг зогсоогоод дараагийн үйлдлийг гүйцэтгэж эхэлнэ. Энэ үед оролт гаралтын
төхөөрөмжөөс өгөгдлийг бичсэн тухай мэдээллийг процессор уруу дамжуулна. /зураг 6.20/
229
зураг 6.20.
Хэрэв оролт гаралтын төхөөрөмжид өгөгдлийг бичих явц дэндүү удаан байвал процессор тасалдал
ашиглаж байсан ч тодорхой хугацаагаар хүлээх тохиолдол гарна. /зураг 6.21/
зураг 6.21.
Тасалдал ашигласан тохиолдолд зааврын цикл нь дараах хэлбэртэй байна. /зураг 6.22/
Шаардлагатай зааврын хаягийг тогтооно.
Зааврыг санах ойгоос олж авна.
Тухайн зааврын дагуу хийх үйлдлийг тогтооно.
Өгөгдлийн санах ой дахь хаягийг тогтооно.
Өгөгдлийг санах ойгоос татан авна.
Зааврын дагуу өгөгдлийг боловсруулна.
Үр дүнг хадгална.
Үр дүнг шинжилж үзээд тасалдлыг ашиглах эсэхийг тогтооно.
Хэрэв тасалдал ашиглах шаардлагагүй бол дараагийн үйлдлийг биелүүлэхэд хэрэгтэй
зааврыг олж авна.
Тасалдлыг ашиглах шаардлагатай бол энэ үйлдлийг зогсооно.
230
зураг 6.22.
6.3.1. Бааз
Бааз нь хоёр болон түүнээс дээш төхөөрөмжүүдийг холбох холболтын зам. Иймээс энэхүү баазад
холбогдсон төхөөрөмжүүд баазыг хамтран ашиглана. Олон төхөөрөмжүүд баазыг хамтран ашиглаж
байгаа тохиолдолд ээлжлэн баазыг ашиглах нь тохиромжтой байдаг. Бааз нь хэд хэдэн зэрэгцээ
шугамуудаас тогтох бөгөөд шугам болгон binary 0 болон binary 1 бүхий тоон сигналыг дамжуулна.
Хэрэв бүх сигналуудыг нэг шугамаар дамжуулж байвал үүнийг сериал бааз гэнэ. Харин нэгэн зэрэг
олон шугамаар зэрэг дамжуулж байвал параллель бааз гэнэ. Жишээлбэл 8 битийн параллель бааз
нь нэгэн зэрэг 8 битийг (binary 0 эсвэл binary 1-ийг нэг бит гэнэ) зэрэг дамжуулдаг. Энэ баазыг 8
битийн өргөнтэй гэж нэрлэнэ.
Баазын хурд 2 зүйлээр хязгаарлагдаж байдаг.
Баазын өргөн буюу баазаар нэгэн зэрэг дамжуулж болох битийн тоо
Баазад холбогдсон төхөөрөмжүүдийн тоо
Баазыг ерөнхийд нь:
control line – баазыг ашиглаж байгаа төхөөрөмж, баазаар дамжуулж байгаа мэдээлэл нь
өгөгдөл үү, хаяг уу гэдгийг тодорхойлсон мэдээлэл зэргийг дамжуулах үүрэгтэй
data line – өгөгдлийг дамжуулах үүрэгтэй
address line – хаягийг дамжуулах үүрэгтэй гэж 3 ангилна.
Уламжлалт персональ компьютерийн хувьд бааз нь дараах байдалтай байна. Өөрөөр хэлбэл
процессор нь кэш ойтой локаль баазаар, кэш ой нь үндсэн санах ойтой систем баазаар
холбогдоно. Харин бусад төхөөрөмжүүд нь систем баазтай chipset (extension bus interface)-ээр
дамжуулан холбогдсон өргөтгөсөн баазаар (жишээ нь PCI бааз) холбогдоно. /зураг 6.23/
зураг 6.23.
Харин workstation, server based компьютерууд нь энгийн персональ компьютераас арай өөр зохион
байгуулалттай байна. Өөрөөр хэлбэл процессор нь кэш ойтой локаль баазаар, кэш ойн үндсэн
санах ойтой систем баазаар холбогдоно. Үүгээрээ персональ компьютертай адилхан. Харин өндөр
хурдтай ажиллах шаардлагатай төхөөрөмжүүд, жишээ нь видео болон график карт, сүлжээ, хатуу
диск зэрэг нь өндөр хурдтай баазыг ашиглан шууд кэш ойд холбогдох бөгөөд бусад дагалдах
төхөөрөмжүүд, жишээ нь модем, факс, принтер зэрэг нь өргөтгөсөн баазыг (жишээ нь PCI бааз)
ашиглан өмнөх өндөр хурдтай баазтай холбогдоно. /зураг 6.24/
231
зураг 6.24.
6.3.2. Систем бааз
Процессор, санах ой, I/O-ийг холбосон баазыг систем бааз гэж нэрлэх бөгөөд control bus, address
bus, data bus гурван систем бааз байна. /зураг 6.25/
зураг 6.25.
Data bus – энэ баазаар өгөгдөл дамжуулагдах бөгөөд ихэвчлэн 8, 16, 32, 64, 128, 256 битийн
өргөнтэй байна. Data bus-ийн өргөн буюу нэгэн зэрэг дамжуулах боломжтой өгөгдлийн тоо
компьютерийн үйлдэл гүйцэтгэх хурданд чухал үүрэгтэй. Жишээлбэл 8 битийн өргөнтэй баазаар 16
битийн урттай өгөгдлийг дамжуулахын тулд 2 дахин ачаалах шаардлага гардаг. Иймээс data bus-
ийг CPU-гийн өргөн ч гэж нэрлэдэг. Өөрөөр хэлбэл 32 битийн CPU гэвэл энэ микропроцессорын
data bus нь 32 битийн өргөнтэй гэж ойлгоно.
Processor Data Bus Size
8088 8
80188 8
8086 16
80186 16
80286 16
80386sx 16
80386dx 32
80486 32
80586/Pentium (Pro) 64
Address bus – энэ баазаар санах ойн хаяг дамжуулагдана. Өөрөөр хэлбэл санах ойн дурын үүрэнд
байрлах өгөгдөлд хандахад түүний хаяг нь энэ баазаар дамжина. Энэ баазын өргөн нь санах ойн
хэмжээнээс хамааран 8-аас 48 битийн хооронд байдаг. Жишээ болгон Intel-ийн 80х86 процессорын
санах ойн баазын өргөн, санах ойн хаягийн хэмжээг үзүүлэв.
Processor Address Bus Size Max Addressable Memory
8088 20 1,048,576 1MB
8086 20 1,048,576 1MB
80188 20 1,048,576 1MB
80186 20 1,048,576 1MB
80286 24 16,777,216 6MB
80386sx 24 16,777,216 6MB
80386dx 32 4,294,976,296 4GB
80486 32 4,294,976,296 4GB
80586 /Pentium (Pro) 32 4,294,976,296 4GB
232
Control bus – бусад bus-аар дамжуулагдах өгөгдлийн талаарх хяналтын мэдээлэл дамжуулагдана.
Өөрөөр хэлбэл микропроцессор нь data bus-аар дамжуулан өгөгдлийг санах ойгоос унших, эсвэл
санах ойд бичих үйлдлийг гүйцэтгэнэ. Тэгвэл энэ тухай мэдээлэл control bus-аар дамжигдана. Мөн
системийн цаг, тасалдал зэрэг нэмэлт мэдээллүүд мөн энэ баазаар дамжуулагдана. Энэ баазын
өргөн хувьсах болон тогтмол янз бүрийн зохион байгуулалттай байдаг. Мөн компьютер нь санах
ойн хаяг болон оролт/гаралтын төхөөрөмж гэсэн 2 өөр хаяглалтын системтэй байдаг. Өөрөөр
хэлбэл санах ойн хаяг нь санах ойн ямар үүрэнд хандахыг тогтоодог бол оролт/гаралтын хаяг нь
оролт гаралтын төхөөрөмжүүдийн хаягийг тогтоодог. Санах ойн хаяг нь 8-аас 48 битийн өргөнтэй
байдаг бол оролт/гаралтын төхөөрөмжийн хаяг нь 16 битийн өргөнтэй байдаг. Өөрөөр хэлбэл
65536 ялгаатай оролт/гаралтын үүртэй байна. Эдгээрийн тусламжтайгаар гар, хулгана, принтер,
монитор, сканнер зэрэг оролт гаралтын төхөөрөмжүүдийг хаяглана. Оргиналь IBM PC нь эдгээрийн
зөвхөн 1024-ийг нь л ашигладаг. Иймээс address bus-аар дамжуулагдаж байгаа хаяг нь санах ойн
хаяг уу, оролт/гаралтын төхөөрөмжийн хаяг уу гэдгийг control bus-аар дамжуулагдах мэдээллээр
тодорхойлж өгдөг.
6.3.3. PCI бааз
Peripheral Component Interconnect (PCI) бааз нь өндөр bandwidth-тэй (32 ба 64 битийн 2
хувилбартай), оролт/гаралтын төхөөрөмжүүд (жишээ нь график дисплей адаптер, диск
контроллер, сүлжээний контроллер г.м)-тэй өндөр хурдтай холбогдоход зориулагдсан бааз.
Стандарт PCI бааз нь 64 битийг нэгэн зэрэг 33MHz хурдтайгаар (264MB/s буюу 2.112Gbps хурдтай)
дамжуулах боломжтой (bandwidth нь 64). Анх 1990 онд Intel-ийнхэн Pentium процессортой
зориулан энэ баазыг анх гаргажээ. Энэ үеэс эхлэн PCI баазыг энгийн персональ компьютер,
сервер, workstation зэрэгт өргөн ашиглах болсон. 1993 онд дараагийн загвар болох PCI 2.0-ийг
гаргаснаар үйлдвэрлэлийн процессыг автоматжуулахад (mainframe компьютерт) ашиглагдах
болжээ. Жишээ болгон энгийн персональ компьютер болон серверийн бүтцийн схемийг 6.26 ба
6.27-р зурагт үзүүлэв.
зураг 6.26. Энгийн персональ компьютер
233
зураг 6.27. Сервер
6.3.4. Бусад баазууд
Өнөөдөр персональ компьютерт PCI баазыг өргөн ашиглаж байна. (зураг 6.28)
зураг 6.28.
Үүнээс гадна ISA, AGP, USB гэсэн 3 баазыг сүүлийн үед өргөн ашиглах болсон. (зураг 6.29)
зураг 6.29.
ISA bus
16 битийн өргөнтэй 8MHz-ийн хурдтай бааз. Intel 810 chipset-ээс эхлэн ISA баазыг дэмжихээ
байсан. (зураг 6.30) Анхны ISA баазыг PC-XT компьютерт ашиглаж байсан бөгөөд энэ нь 8
битийн өргөнтэй, 4MHz хурдтай байв. 80286-д зориулан 16 битийн хувилбарыг гаргажээ.
Internal controller – LPT1 (printer, scanner зэрэг параллель төхөөрөмжүүдийг холбоход
зориулагдсан), COM1, COM2 (хулгана, модем зэрэг бусад сериаль төхөөрөмжүүдийг
холбоход зориулагдсан), Floppy (уян дискийн төхөөрөмжийг холбох зориулалттай),
keyboard (компьютерийн гарыг холбох зориулалттай)
ISA adapter – 16 битийн төхөөрөмжүүдийг холбоход зориулагдсан слотууд
234
зураг 6.30.
PCI bus
Стандарт PCI bus нь 32 битийн өргөнтэй 33MHz хурдтай, PCI 2.0 хувилбар нь 64 битийн
өргөнтэй 66MHz хурдтай. PCI-X хувилбар нь 64 битийн, 133MHz хурдтай боловч төдийлөн
өргөн тархаагүй.
EIDE controller – Ultra DMA хатуу диск, Zip диск, CD-ROM болон бусад төхөөрөмжийг
холбох зориулалттай
PCI adapter – график адаптер, сүлжээний карт болон бусад 32 битийн төхөөрөмжүүд,
мөн SCSI controller (SCSI hard disc, SCSI scanner зэрэг SCSI төхөөрөмжүүдийг холбох
зориулалттай)
FireWire - өндөр хурдтай IEEE 1394 сериаль бааз, digital camera, TV зэрэг 63 хүртлэх
төхөөрөмжийг хамтад нь холбох боломжтой.
AGP bus
64 битийн data баазтай, 32 битийн address баазтай, 66MHz хурдтай, график картыг холбож
өгөх зориулалттай. Pentium II-д зориулсан Intel 440LX chipset-д анх гарч ирсэн. (зураг 6.31)
зураг 6.31.
USB bus
12Mbps хурдтай нэг сериал сувгаар 127 хүртэлх төхөөрөмжийг холбох боломжтой. USB 2.0
хувилбар нь 120-240Mbps хурдтай болсон.
MCA bus
80386, 80486 процессорууд нь 32 битийн процессорууд боловч 16 битийн ISA баазыг ашиглаж
байжээ. Иймээс IBM PS/2 компьютерууддаа зориулан MCA баазыг зохион гаргажээ. Энэ бааз нь
16 ба 32 битийн алинд ч ажиллах чадвартай байв.
EISA bus
ISA баазын өргөтгөсөн хувилбар. Энэ хувилбар 16/32 битийн data баазтай, 24/32 битийн
address баазтай, өмнөх ISA баазтай зохицдог.
IrDA bus
Эдгээрээс гадна уламжлалт параллель порттой адилхан IrDA бааз нь инфра ягаан туяаг
ашиглан холбогдох боломжтой шинэ бааз.
6.4.1. Санах ой
Компьютерт дараах санах ойн байгууламжууд ашиглагддаг.
Регистер
Кэш ой
Үндсэн санах ой
Зөөврийн зориулалттай диск
Соронзон ба оптик диск
235
Санах ойн хамгийн бага нэгжийг нүх гэнэ. 1 нүхэнд 1 бит мэдээлэл бичигдэнэ. 8 нүхнүүдийг
нийлүүлээд 1 үүр гэнэ. 1 үүрэнд бичигдэх битийн тоог word буюу үг гэнэ. Хэрэв санах ойн үүр нь 8
битийн багтаамжтай бол санах ойн үгийн урт мөн 8 бит байна. Үүнтэй адилаар санах ойн үүр нь
16, 32 битийн багтаамжтай бол үгийн урт мөн 16, 32 битийн урттай байна.
Санах ойн үндсэн үзүүлэлтүүд:
Багтаамж: санах ойд агуулагдах боломжтой мэдээллийн багтаамж, байт гэсэн нэгжтэй байна.
1byte=8bit, 1kB=1024byte, 1MB=1024kB, 1Gb=B=1024MB
Word буюу үг: санах ойн 1 үүрэнд багтах бит
Address буюу хаяглалт: санах ой дахь нийт үүрний тоо. Хэрэв санах ойн хаяг нь N битээс
тогтдог бол нийтдээ 2N
ялгаатай хаягтай буюу 2N
үүртэй байна. Иймээс хаяглалтын шугамын
урт (address line) нь N, санах ойн хоорондоо ялгаатай хаягтай үүрний тоо 2N
байна.
Data line буюу дамжууллын шугам: санах ой уруу нэгэн зэрэг өгөгдөл бичих болон унших
боломжтой битийн тоо.
Transfer rate буюу дамжууллын хурд: өгөгдлийг бусад төхөөрөмжөөс санах ойд бичих болон
санах ойгоос өгөгдлийг унших буюу дамжуулах хурд
Access rate: санах ойн тодорхой үүрэнд өгөгдөл бичих унших хурд
Cycle time: санах ой уруу хандах дараалсан хоёр хандалтын хоорондох хугацаа
Санах ойн төрөл Технологи Хэмжээ Хурд
Кэш ой Хагас дамжуулагч 128-512KB 10 ns
Үндсэн санах ой Хагас дамжуулагч 4-512MB 50 ns
Соронзон диск Хатуу диск GB 10 ms, 10 MBps
Оптик диск CD-ROM GB 300 ms, 600 KBps
Соронзон диск tape 100s MB Sec-min, 100MBpm
6.4.2. Шуурхай санах ой
Шуурхай санах ойн өгөгдлийг унших, бичих боломжтой, үргэлж тэжээлээр хангагдаж байдаг тул
тэжээлийг таслахад доторх өгөгдлөө алдана. Иймээс шуурхай санах ойг өгөгдлийг түр хугацаанд
хадгалахад ашигладаг. Шуурхай санах ойн үндсэн 2 төрөл байна.
Dynamic RAM – динамик шуурхай санах ойн нүх нь конденсаторын цэнэглэгдэх, цэнэгээ алдах
процессыг ашигласан, үнэ өндөртэй, хурд ихтэй.
Static RAM – статик шуурхай санах ойн нүх нь триггер болон логик элементүүдийг ашигласан,
үнэ хямд, динамик үуурхай санах ойг бодвол хурд бага, овор хэмжээ бага, тэжээл бага
шаардана.
DRAM SRAM
Хэмжээ их
Үнэ өндөр
Хурд их
Тэжээл өндөр
Хэмжээ бага
Үнэ бага
Хурд бага
Тэжээл бага
Жишээ нь: 16MB DRAM (4Mx4) /зураг 6.32/
зураг 6.32.
Энэ санах ойн address line нь 22 байх ёстой боловч санах ойн үүр нь 2 хэмжээст матрикс
хэлбэртэйгээр байрлах (211
x211
=222
буюу 2Kx2K=4M) учир address line нь 11, мөрийг сонгох RAS
(row access strobe), баганыг сонгох CAS (column access strobe) гэсэн 2 оролттойгоор зохион
байгуулагдсан. Data line нь 4 учир 4Mx4=16MB багтаамжтай. Иймээс 32 битийг зэрэг дамжуулахын
тулд 16MB-ийн 8 chip-ийг ашиглана. Энэ санах ойн бүтцийн схемийг 6.33–р зурагт үзүүлэв.
236
зураг 6.33.
Иймээс DRAM-ийг үндсэн санах ойд (memory access time 60 ns), SRAM-ийг кэш ойд (memory access
time 5 ns) ихэвчлэн ашиглана.
Үндсэн санах ойг дараах гурван хэлбэрээр CPU-д холбож ашиглана. Үүнд:
Simple – CPU, кэш, бааз, үндсэн санах ой 3 адилхан 1 үг (зураг 6.34. а)
Interleaved – CPU, кэш, бааз 3-ын өргөн нь адилхан 1 үг, санах ойн N module-аас тогтно
(зураг 6.34. b)
Wide – CPU нь 1 үг, кэш, бааз, санах ой N үг (зураг 6.34. c)
зураг 6.34.
Санах ой уруу хандах хугацаа буюу санах ойгоос өгөгдөл унших/бичих хугацаа нь
микропроцессорын циклийн хугацаанаас бага байдаг. (зураг 6.35)
зураг 6.35.
Иймээс олон модулиас тогтох санах ойн системийг ашигласнаар нэг циклийн хугацаанд санах ойн
модуль бүрд ээлжлэн хандах боломжтой. (зураг 6.36)
зураг 6.36.
DRAM-ийн өөр нэгэн өргөн ашиглагддаг төрөл нь SDRAM (Synchronous DRAM). Энэ санах ойн data
line нь 16 тул 16 битийг зэрэг дамжуулах боломжтой учраас DRAM-аас илүү хурдан болсон.
Сүүлийн жилүүдэд RDRAM (RambusDRAM) өргөн ашиглагдах болсон бөгөөд энэ нь SDRAM-аас илүү
хурдан (memory access time SDRAM 44 ns – RDRAM 38 ns), 800MHz-ийн интернал RAMBUS баазыг
ашигладаг болсон.
237
6.4.3. Тогтмол санах ой
Тогтмол санах ойд бичигдсэн мэдээллийг зөвхөн унших боломжтой бөгөөд түүнийг нь өөрчлөх,
шинээр бичих боломжгүй. Иймээс тогтмол санах ойн тэжээл ашиглахгүй байсан ч өөр дээрх
мэдээллээ хадгалсаар байх болно. Тогтмол санах ойн өөр нэг төрөл нь хэрэглэгчийн зүгээс доторх
мэдээллийг нь өөрчлөх боломжтой программчлагддаг тогтмол санах ой Programmable ROM
(PROM). Жишээ нь 74186 нь 512 битийн PROM (зөвхөн нэг удаа программчлагддаг санах ой).
Программчлагддаг тогтмол санах ойн дараах 3 төрөл өргөн ашиглагддаг.
Erasable PROM (EPROM) – бичихдээ цахилгаан импульсыг ашиглах бөгөөд арилгахдаа ультра
ягаан туяаг ашиглана. Арилгах хугацаа нь ойролцоогоор 20-оод минут. 100 гаруй удаа арилгаж
болно.
Electrically EPROM (EEPROM) – бичих болон устгахдаа цахилгаан импульсыг ашиглана. Арилгах
хугацаа нь программаар хийгдэх тул хэдхэн секунд шаардагдана.
Flash – EEPROM-тай адилхан, шинээр гарч ирсэн программчлагддаг тогтмол санах ой.
Жишээ нь: 8MB EPROM (1Mx8) /зураг 6.37/
1M (220=1M) үгтэй тул address line нь 20 (A0-A19)
Үг нь 8 битээс тогтох тул data line нь 8 (D0-D7)
Vcc – power supply (тэжээл)
Vss – ground (ерөнхий газардуулга)
CE – chip enable
Vpp – program voltage (программ бичилтийг хангах зорилготой)
зураг 6.37.
Санах ойн төрөл Категори Устгах Бичих механизм Тэжээл
Random Access Memory (RAM) Read-write memory Electrically, byte level electrically volatile
Read Only Memory (ROM) Read only memory Not possible - Non-volatile
Programmable ROM (PROM) Read only memory Not possible electrically Non-volatile
Erasable PROM (EPROM) Read mostly memory UV light, chip level electrically Non-volatile
Flash memory Read mostly memory Electrically, block level electrically Non-volatile
Electrically erasable PROM (EEPROM) Read mostly memory Electrically, byte level electrically Non-volatile
6.4.4. Кэш ой
Микропроцессорын өгөгдлийг боловсруулах хурд нь санах ойгоос өгөгдлийг унших, бичих хурдаас
олон дахин их байдаг. Өөрөөр хэлбэл санах ойд байгаа өгөгдлийг унших бичих хурд нь
микропроцессорын хурдыг гүйцдэггүй. Иймээс үүнийг зохицуулах зорилгоор үндсэн санах ойг
бодвол бага багтаамжтай, хурд ихтэй шуурхай санах ойг ашигладаг бөгөөд үүнийг кэш ой гэнэ.
Иймээс кэш ойг микропроцессор болон үндсэн санах ойн хооронд өгөгдлийг дамжуулах явцыг
хангаж өгөх зориулалттай өндөр хурдтай завсрын ой гэж ойлгож болно. (зураг 6.38)
238
зураг 6.38.
Кэш ой болон микропроцессор 2-ын хооронд дамжуулах өгөгдөл нь үг бол кэш ой болон үндсэн
санах ойн хооронд дамжуулах өгөгдөл нь блок байна. Энд 1 блокыг хэд хэдэн үгнээс тогтдог гэж
үзэж болно. (зураг 6.39)
зураг 6.39.
Микропроцессор нь санах ойгоос үгийг уншихдаа эхлээд тухайн үг кэш ойд байгаа эсэхийг
шалгана. Хэрэв хэрэгтэй үг кэш ойд олдвол үндсэн санах ой уруу хандалгүй шууд кэш ой уруу
хандана. Иймээс кэш ойн ажлын хурдыг ихэсгэж өгдөг сайн талтай. Хэрэв тухайн үг кэш ойд
байхгүй бол уг үгийг багтаасан блокыг үндсэн санах ойгоос кэш ой уруу дамжуулна.
Кэш ой нь гадаад (L2 cache) дотоод (L1 cache) гэсэн 2 янз байна. L1 кэш нь микропроцессор дотор
байрладаг бол L2 кэш нь микропроцессорын гадна байрлана. Эдгээр санах ойнуудын
характеристикыг хооронд харьцуулан 6.40-р зурагт үзүүлэв.
зураг 6.40.
Кэш ойд өгөгдлийг хэрхэн байрлуулдгийг авч үзье. Жишээ нь 16 үгтэй, үгийн урт нь 1 байт
хэмжээтэй санах ойгоос блокын хэмжээ нь 4 байт байх кэш ойг хэрхэн үүсгэхийг үзье. (зураг 6.41)
239
зураг 6.41.
Хэрэв санах ойн address bus нь 32 битийн өргөнтэй, кэшийн хэмжээ 2n
байт, блокын хэмжээ 2m
байт бол кэшийн address нь дараах хэлбэртэй байна. (зураг 6.42)
зураг 6.42.
Жишээ 6.3. 16KB-ийн кэш ой
16KB-ийн кэш ойн блокын хэмжээ нь 16 байт, кэшийн хэмжээ нь 1024 блок (16 byte x 1024) (зураг
6.43)
зураг 6.43.
Блокын хэмжээ нь 24
байт тул offset-ийн хэмжээ нь 4 бит, кэшийн хэмжээ нь 210
байт тул index-ийн
хэмжээ 10 бит, үлдсэн 18 бит нь cache tag болно. Index нь кэш дэх блокын байрлалыг, offset нь
блок дотор байтын байрлалыг тус тус заана. Жишээлбэл 00000000000000 0000000001 1100 гэсэн
хаягийн 0000000001 нь кэш дэх блокын байрлалыг, 1100 нь блок дахь байтын байрлалыг тус тус
заана. Өөрөөр хэлбэл кэш дэх 1-р блокын 12-15-р байтыг заана. (зураг 6.44)
240
зураг 6.44.
Хэрэв 00000000000000 0000000001 0100 бол 1-р блокын 4-7-р байтыг заана. (зураг 6.45)
зураг 6.45.
Хэрэв 00000000000000 0000000011 0100 бол 3-р блокын 4-7-р байтыг заана. (зураг 6.46)
зураг 6.46.
1-р блокын өгөгдөл өөрчлөгдөхөд cache tag шинэчлэгдэнэ. (зураг 6.47)
241
зураг 6.47.
6.5.1. Гадаад санах ой
Гадаад санах ойн төхөөрөмжүүдийг дотор нь дараах байдлаар хувааж болно.
Соронзон диск (уян диск, хатуу диск)
Оптик диск (CD-ROM, WORM, DVD)
Соронзон type
Соронзон диск нь дотроо:
Уян диск (floppy disk)
Хатуу диск (Winchester hard disk)
Зөөврийн диск (removable hard disk) гэсэн 3 хэлбэртэй байна.
Дискэн дээр өгөгдлийг бичихдээ дискийг эхлээд бэлднэ. Үүний тулд дискийг trace буюу
цагиргуудад хуваана. (зураг 6.48) 1 surface-д ойролцоогоор 500-2000 trace байна. Энд surface
гэдэгт дискийн нэг талыг ойлгоно. Жишээ нь ихэнх хатуу дискэн дискийн 2 талд бичих боломжтой
(2 surface) бол оптик дискүүд зөвхөн 1 талд нь (1 surface) бичих боломжтой байна. Trace болгонд
хадгалагдах битүүд адилхан байна. Trace-уудын хоорондох зайг inter-trace gap гэнэ. Өөрөөр хэлбэл
trace-ууд нь хоорондоо gap-аар тусгаарлагдана.
зураг 6.48.
Trace-ийг цааш нь секторуудад хуваана. (зураг 6.49) 1 trace нь 10-100 секторт хуваагдана. Секторт
тодорхой тооны блок өгөгдөл хадгалагдана. Хамгийн багадаа 1 секторт 1 блок өгөгдөл
хадгалагдаж болно. Секторуудыг хооронд нь тусгаарлагчийг inter-sector gap гэнэ.
242
зураг 6.49.
Ихэнх хатуу диск нь хэд хэдэн дискүүдээс тогтно. Эдгээр дискүүдийг ерөнхийд нь platter гэж
нэрлэнэ. Platter болгоны 2 талд өгөгдлийг бичих боломжтой байх бөгөөд тэдгээрийг surface гэнэ.
Олон platter-аас тогтсон системийн хувьд trace-уудыг цилиндр гэдэг ойлголтоор сольж ойлгоно.
Surface болгон дээр өгөгдөл бичиж, унших толгой (head) байрлах бөгөөд ихэнх тохиолдолд тэдгээр
нь тусгай arm гэж нэрлэгддэг хэвтээ тэнхлэгийн дагуу чөлөөтэй хөдлөх боломжтой сууринд
суурилагдсан байна. Үүний тусламжтайгаар head нь дурын trace уруу шилжих боломжтой байна.
Дискүүд нь rotate гэж нэрлэгддэг босоо тэнхлэгийн дагуу чөлөөтэй эргэх боломжтой сууринд
суурилагдсан байх тул head үүний тусамжтайгаар дурын секторт мөн шилжиж чадна. (зураг 6.50)
зураг 6.50.
Хатуу дискээс өгөгдлийг унших бичих хурд нь trace-ийг хайж олох хугацаа, секторыг хайж олох
хугацаа, олсон секторт өгөгдөл бичих, унших хугацаа гэсэн хугацаануудын нийлбэрээр
тодорхойлогдоно.
access time = seek time + rotation time + transfer rate
seek time – trace-ийг хайж олох хугацаа
rotation time – секторыг хайж олох хугацаа
transfer rate – дискэнд өгөгдөл бичихунших хурд
Хатуу дискийг үндсэн хэсэг (primary partition) болон хэд хэдэн дэд хэсгүүдэд (extended partition)
хуваах замаар нэг дискийг хэд хэдэн логик дискүүд болгон хувааж болдог. Өөрөөр хэлбэл нэг
дискийг хэд хэдэн логик диск болгон ашиглаж болно. Үүнийг partition table-ийг үүсгэх замаар
шийдэж өгдөг.
243
Харин сектор доторх толгой хэсэг (ID талбар), өгөгдлийн эзлэх байр (data талбар), тусгаарласан
хоосон зай (gap) зэргийг тогтоон дискэн дээр өгөгдлийг бичихэд бэлтгэж өгөхийг дискийг
форматлах үйл явцаар шийдэж өгнө.
Жишээ болгон Winchester хэлбэрийн хатуу дискийн нэг trace-ийг хэрхэн форматладаг болохыг авч
үзье. (зураг 6.51)
Trace болгон тус бүр нь 600 байт мэдээлэл агуулах боломжтой 30 сектороос тогтно.
Үүний 515 байтад өгөгдлийг хадгалах зориулалттай data талбар эзэлнэ.
7 байтын урттай ID талбар нь тухайн секторын хаягийг агуулна. Энд trace, head, sector-ийн
дугаарууд байрлана.
Synch byte нь тухайн талбарын эхлэлийг тэмдэглэнэ.
CRC нь алдааны хяналт
Gap нь секторууд, ID болон data талбаруудыг хооронд тусгаарлах зориулалттай байна.
зураг 6.51.
6.5.2. Оптик диск
1983 онд тоон аудио мэдээлэл агуулах зорилготой анхны компакт диск зохион бүтээгджээ. Анхны
энэ CD нь бичигдсэн өгөгдлийг арилгах боломжгүй, 60 минутын хугацаанд үргэлжлэх аудио
мэдээллийг агуулах багтаамжтай байв. Компакт диск нь үнэ хямдтай, нэлээд хэмжээний тоон
өгөгдлийг өөр дээрээ хадгалах боломжтой тул компьютерт тоон өгөгдлийг хадгалах зорилгоор
ашиглах болжээ. Сүүлийн жилүүдэд энэ оптик дискний нэлээд хэдэн хувилбарууд гарсан бөгөөд
эдгээрийн талаар товч танилцуулья.
CD (compact disc) – тоон аудио мэдээллийг агуулах зорилготой. Нэг тал дээр нь 60 минутын
хугацаанд үргэлжлэх аудио мэдээллийг агуулах боломжтой, дээр нь бичигдсэн мэдээллийг
устгах боломжгүй.
CD-ROM (compact disc read only memory) – тоон мэдээллийг агуулах зорилготой. Нэг тал
дээр нь 550MB өгөгдлийг багтаах боломжтой, дээр нь бичигдсэн мэдээллийг устгах
боломжгүй.
DVI (digital video interactive) – видео мэдээллийг агуулах зорилготой. CD болон бусад оптик
дискүүдийг ашиглана.
WORM (writer once read many) – 1 удаа бичих боломжтой, 200-800MB-ийн багтаамжтай
оптик диск.
Erasable Optical Disk – олон дахин бичих боложтой, 650MB-ийн багтаамжтай оптик диск.
Audio CD болон CD-ROM – нь адилхан технологиор хийгддэг. Trace-уудын хоорондох зайн 1,6
микрон (1.6*10-6
meter), нийтдээ 20344 trace-уудаас тогтох бөгөөд нэг онцлог нь бүх trace-ууд нь
нэг л спираль хэлбэртэй. Иймээс нийт trace-ийн урт ойролцоогоор 5.27 км. Компакт диск нь 1
секундэд 1.2 м урттай өгөгдлийг уншдаг гэвэл компакт дискэн дээрх нийт өгөгдлийг уншихад 4391
секунд буюу 73.2 минут шаардлагатай. (зураг 6.52)
244
зураг 6.52.
Компакт дискэн дээрх өгөгдөл цуваа байрласан блокуудаас тогтсон байна. 1 блокын хэмжээ нь
2352 байт байх бөгөөд дараах хэсгүүдээс тогтно: (зураг 6.53)
Sync – блокын эхлэлийг заана
Header – блокын хаяг болон байтын хэлбэрийг заана. Хэрэв mode 0 бол data талбар нь хоосон,
mode 1 бол data талбарт алдааны хяналттай 2048 байт өгөгдөл, mode 2 бол data талбарт
алдааны хяналтгүй 2336 байт өгөгдөл (auxiliary талбар байхгүй) болохыг тогтоож өгнө.
Data – энэ талбарт өгөгдөл байрлана.
Auxiliary – энэ талбарт хэрэв өгөгдөл нь mode 2 хэлбэртэй бол өгөгдөл, mode 1 хэлбэртэй бол
алдааны код тус тус байрлана.
зураг 6.53.
6.5.3. Виртуаль санах ой
Хатуу дискийн төхөөрөмжийг үндсэн санах ойтой адилхан зорилгоор ашиглахын тулд виртуаль ой
гэж нэрлэгдэг логик санах ойг ашигладаг. Виртуаль ойг үүсгэхэд дараах зүйлүүдийг тооцоолох
хэрэгтэй.
Хатуу диск уруу өгөгдөл бичих унших хурд үндсэн санах ой дахь өгөгдлийг унших бичих
хурдаас олон дахин бага байдаг.
Компьютер зааврыг биелүүлэх үед виртуаль санах ойн хаягийг ашиглана. Гэтэл энэ логик
санах ойн хаяг нь үндсэн санах ойн физик хаягнаас ялгаатай байдаг.
Виртуаль ойг үүсгэх paging гэдэг аргыг өргөн ашигладаг. Үүгээр:
Виртуаль санах ойн ижилхэн хэмжээтэй хуудаснууд болох page-уудаас тогтно.
Энэхүү page-ууд нь бүгд өөрийн гэсэн логик хаягтай байх ба логик хаяг нь page, byte offset
гэсэн 2 хэсгээс тогтно. (зураг 6.54)
Page-уудын логик хаягуудыг page table-д бүртгэж авсан байна. Энэ нь page-ийн логик
хаягийг физик хаяг уруу хөврүүлнэ. (зураг 6.55)
245
зураг 6.54.
зураг 6.55.
6.6.1. Оролт/гаралтын модуль
Оролт/гаралтын модуль нь гадны төхөөрөмжүүдийг баазтай холбох зорилготой. Компьютерт
дараах үндсэн 3 модуль ашиглагддаг. (зураг 6.56) Үүнд:
Санах ой – N үгнээс тогтох бөгөөд санах ойн үүрэнд өгөгдлийг бичих болон уншихын аль
нь болохыг тогтоосон write/read, санах ойн үүрний хаягийг дамжуулах address, өгөгдлийг
санах ойн үүрэнд бичих data гэсэн оролтын, санах ойгоос өгөгдлийг унших data гэсэн
гаралтын портуудтай.
Оролт/гаралтын модуль – оролт гаралтын төхөөрөмжүүд рүү хандах M портоос тогтох
бөгөөд тухайн портод холбогдсон төхөөрөмжид өгөгдлийг бичих болон уншихыг тогтоох
зорилготой read/write, аль порт уруу хандахыг тогтоох address, CPU болон санах ойгоос
өгөгдлийг дамжуулах internal data, бусад гадны төхөөрөмжүүдээс өгөгдлийг дамжуулах
external data гэсэн оролтын, CPU болон санах ой уруу өгөгдлийг бичих internal data, бусад
гадны төхөөрөмжүүд рүү өгөгдлийг бичих external data, тасалдлыг дамжуулах interrupt
гэсэн гаралтын портуудтай.
CPU – CPU уруу зааврыг дамжуулах instruction, өгөгдлийг дамжуулах data, тасалдлыг
дамжуулах interrupt гэсэн оролтын, CPU боловсруулсан өгөгдлийг регистер, санах ой,
гадны төхөөрөмж рүү бичих data, эдгээрийн талаарх хяналтын мэдээллийг агуулсан control
гэсэн гаралтын портуудтай.
246
зураг 6.56.
Дараах төрлийн оролт гаралтын төхөөрөмжүүдийг компьютерт ашиглана.
Device Behavior Partner Data Rate (KBps)
Keyboard Input Human 0.01
Mouse Input Human 0.02
Voice input Input Human 0.02
Scanner Input Human 200.00
Voice output Output Human 0.60
Line Printer Output Human 1.00
Floppy disk Storage Machine 50.00
Laser Printer Output Human 100.00
Optical Disk Storage Machine 500.00
Magnetic Disk Storage Machine 2000.00
Network-LAN I or O Machine 200.00
Network-terminal I or O Machine 0.05
Graphics Display Output Human 30,000.00
Микропроцессор нь маш өндөр хурдтайгаар үйлдлийг гүйцэтгэнэ. Харин оролт/гаралтын
төхөөрөмжийн хурд харьцангуй удаан. Жишээлбэл 500MHz-ийн микропроцессор 1 секундэд 500
сая зааврыг гүйцэтгэх боломжтой. Өөрөөр хэлбэл түүний хурд нь 200000KBps. Гэтэл
оролт/гаралтын төхөөрөмжийн хурд нь 0.01-30000KBps. Иймээс оролт/гаралтын төхөөрөмжийн
хурд харьцангуй удаан тул микропроцессор оролт/гаралтын төхөөрөмжийг ашиглахыг хүссэн үед
оролт/гаралтын төхөөрөмж бэлэн болж амжаагүй байж болно. Энэ асуудлыг шийдэх зорилгоор
дараах 2 регистерийг ашигладаг.
Control register – оролт/гаралтын төхөөрөмжийг ашиглахад бэлэн байна уу, үгүй юу гэдгийг
тогтоосон статус битийг агуулна.
Data register – өгөгдлийг түр зуур хадгална.
Өөрөөр хэлбэл оролт/гаралтын төхөөрөмж рүү дамжуулсан өгөгдөл data register-д control register-
ээс оролт/гаралтын төхөөрөмжийг ашиглаж болно гэсэн мэдээг иртэл хадгална.
I/O module нь оролт гаралтын төхөөрөмжүүдийг баазтай холбож өгнө. (зураг 6.57)
зураг 6.57.
I/O module-ийн бүтцийн схемийг 6.58-р зурагт үзүүлэв. CPU-гээс I/O module уруу data, address,
control гэсэн 3 шугамаар мэдээлэл дамжуулагдана. Data шугамаар өгөгдөл, address шугамаар оролт
гаралтын ямар төхөөрөмжийг ашиглах хаягийг, control шугамаар read, write буюу өгөгдлийг унших,
247
бичих аль болохыг тогтоосон мэдээлэл CPU-гээс I/O module уруу, I/O module-аас CPU рүү rеady,
not ready буюу төхөөрөмжийг ашиглахад бэлэн, бэлэн бус байгаа тухай мэдээллийг тус тус
дамжуулна. Оролт гаралтын төхөөрөмжүүд нь тодорхой хаягтай байна. Жишээ нь 1000 хатуу диск,
1001 уян диск г.м-ээр.
зураг 6.58.
Гадаад төхөөрөмжүүд нь I/O module-тай холбогдохдоо тусгай интерфейсүүдийг ашиглана. Гадаад
төхөөмжийн интерфейс нь хяналт control, статус status, өгөгдөл data гэсэн 3 шугамаас тогтно. Data
нь I/O module уруу өгөгдлийг илгээх болон хүлээн авахад, status нь төхөөрөмжийг тухайн үед
ашиглаж болох эсэхийг шалгасан статус битийг илгээх, хүлээн авахад, control нь I/O module болон
гадаад төхөөрөмжийн харьцах харьцааг тодорхойлсон мэдээллийг илгээхэд тус тус ашиглагдана.
Жишээлбэл I/O module уруу өгөгдлийг илгээх буюу унших, I/O module-аас гадаад төхөөрөмж уруу
өгөгдлийг бичих г.м. энэ нь тухайн төхөөрөмжийн толгой head хэсэгт байна. (зураг 6.59)
Control logic нь I/O module уруу хандах ажиллагааг хянана.
Transducer нь өгөгдлийг хөврүүлнэ.
Buffer нь өгөгдлийг түр хадгална. Энэ нь ерөнхий тохиолдолд 8-аас 16 битийн хэмжээтэй
байна.
зураг 6.59.
6.6.2. Оролт/гаралтын үйлдлүүд
Оролт гаралтын командууд
Control – оролт гаралтын төхөөрөмж (I/O device)-ийг ашиглаж болох эсэхийг тогтооно
Test – I/O module ба төхөөрөмж 2-ын хоорондох холболтыг шалгана
Read - өгөгдлийг төхөөрөмж (I/O device)-ээс I/O module-ийн буферт хуулна. Дараа нь
эндээс өгөгдлийг CPU-гийн регистер эсвэл санах ой уруу зөөнө
248
Write - өгөгдлийг CPU-гийн регистер эсвэл санах ойгоос I/O module-ийн буферт хуулна.
Дараа нь эндээс төхөөрөмж рүү зөөнө
Программчлагдсан I/O
CPU оролт гаралтын төхөөрөмжийг ашиглах тухай хүсэлтийг гаргана.
Хүсэлтийг I/O module хүлээн авч тухайн төхөөрөмжийг ашиглахад бэлэн эсэхийг шалгана.
Хэрэв бэлэн биш бол CPU хэсэг хугацааны дараа ахин хүсэлтийг илгээнэ.
Жишээ нь read командыг хэрхэн биелүүлэхийг үзье.
CPU read командыг I/O module-д гаргана.
I/O module статус регистерт байрлах статус битийг шалгах замаар оролт гаралтын
төхөөрөмжийг ашиглахад бэлэн эсэхийг шалгана.
Хэрэв төхөөрөмжийг ашиглахад бэлэн бол өгөгдлийг I/O module-ийн data буферт хуулна.
CPU дээрх үйлдэл дууссан эсэхийг шалгана. Дуусаагүй бол үүний нь статус битээс олж
мэднэ.
Хэрэв үйлдэл дууссан бол I/O module-аас үгийг регистерт хуулна.
Дараа нь өгөгдлийг CPU-гийн регситерээс санах ойд хуулна.
Хэрэв read командаар хуулах өгөгдлийн урт 1 үгээс хэтэрсэн бол дээрх үйлдлийг давтана.
Жишээ нь Intel 8255A programmable peripheral interface-ийг үзье. (зураг 6.60)
зураг 6.60.
Энэ интерфейсийг гар, монитор зэрэг төхөөрөмжүүдийг холбоход ашиглана. (зураг 6.61)
зураг 6.61.
249
Interrupt driven I/O
Программчлагдсан I/O үйлдлийг гүйцэтгэх үед I/O үйлдлийг дуустал CPU хүлээх шаардлага
гардаг. Учир нь I/O үйлдэл нь CPU-гийн хурдтай харьцуулахад удаан биелэгдэнэ. I/O үйлдлийг
дуустал CPU өөр үйлдлийг гүйцэтгэх боломжийг тасалдал ашиглан олгоно.
CPU read/write командыг хийх хүсэлтийг гаргана.
CPU программыг үргэлжлүүлэн дараагийн зааврыг гүйцэтгэнэ.
I/O module/device нь I/O үйлдлийг гүйцэтгэнэ.
Үйлдлийг гүйцэтгэж дууссаны дараа I/O module-аас тасалдлыг CPU уруу явуулна.
CPU тасалдлыг хүлээн авч одоо гүйцэтгэж байгаа үйлдлээ зогсооно.
CPU одоо биелэж байгаа программын статусыг хадгална.
CPU тест хийх замаар ямар төхөөрөмж тасалдлыг илгээснийг тогтооно.
CPU I/O module-аас үгийг регистер эсвэл санах ойд хуулна.
CPU өмнөх үйлдлээ үргэлжлүүлэн биелүүлнэ.
Жишээ нь Intel 8259A Interrupt controller-ийг үзье.
Intel 8086 процессор нь тасалдлыг хүлээн авах INTA гэсэн нэг оролттой. Иймээс олон тооны
гадаад төхөөрөмжийг ашиглаж байх үед тэр болгоны тасалдлыг зохицуулах зорилгоор 8259A
Interrupt controller-ийг ашиглана. (зураг 6.62)
зураг 6.62.
DMA (direct memory access)
1 үгнээс илүү урттай өгөгдлийн хувьд CPU-гийн үйлдлийг олон дахин таслах шаардлага гардаг.
Үүнийг шийдэх зорилгоор DMA module-ийг ашиглана. Энэ нь I/O module санах ой 2-ыг шууд
холбож өгөх зорилготой. Өмнөх программчлагдсан I/O ба interrupt driven I/O нь өгөгдлийг
санах ойгоос төхөөрөмж рүү илгээх эсвэл төхөөрөмжөөс санах ой уруу илгээх үйлдлийг CPU-
гээр дамжуулан явуулдаг байсан ба хоорондох ялгаа нь энэ үйлдлийг гүйцэтгэхдээ нэг нь
тасалдал ашигладаггүй, нөгөөх нь тасалдал ашигладагт л байсан. Харин DMA нь дээрх
үйлдлийг CPU-гээр дамжуулахгүй шууд санах ой оролт гаралтын төхөөрөмжийн хооронд
явуулдгаараа ялгаатай.
DMA module-ийг ашиглах 3 үндсэн арга байдаг.
Эхнийх нь DMA module-ийг CPU, санах ой, оролт гаралтын төхөөрөмжүүдтэй 1 баазад холбох.
(зураг 6.63) Энэ тохиолдолд дамжуулал бүрд баазыг 2 удаа ашиглана. I/O device-аас DMA уруу,
DMA-гаас санах ой уруу. Иймээс CPU 2 удаа баазыг ашиглахгүй хүлээнэ гэсэн үг.
250
зураг 6.63.
Дараагийнх нь DMA module-ийг 6.64-р зурагт үзүүлсний дагуу холбох. Ингэснээр дамжуулал
бүрд баазыг нэг л удаа ашиглана. Иймээс дамжуулал хийх үед CPU баазыг ашиглахгүй нэг удаа
зогсоно.
зураг 6.64.
Гуравдахь нь DMA module болон оролт гаралтын төхөөрөмжүүдийг хооронд нь холбосон тусгай
оролт гаралтын бааз (PCI, AGP, ISA, USB г.м)-ыг ашигласан тохиолдол. (зураг 6.65)
зураг 6.65.
6.7.1. Микропроцессорын хөгжлийн товч түүхээс
зураг 6.66.
1969 онд Japanese calculator company, Busicomp компаниудын захиалгын дагуу
Intel Corporation тооны машинд зориулсан хэд хэдэн chip-ийг хийжээ. Intel-ийн
инженер Mercian (Ted) Hoff ерөнхий нэг chip-ийн тусламжтайгаар
программчлагддаг, олон үйлдлийг гүйцэтгэх чадвартай байгууламжийг хийх
санааг анх гаргаснаар удалгүй 1971 оны 11-р сарын 15-нд Intel Corporation анхны
Intel 4004 микропроцессорыг (микропроцессорыг цаашид зүгээр л процессор гэж
нэрлэе) хийсэн. /зураг 6.66/
Энэ нь анхны үйлдэл гүйцэтгэх чадвартай бүх элементүүдийг нэг chip дээр байрлуулсан
байгууламж байлаа. 4004 процессор нь 4 битийн 2 тоог хооронд нь нэмэх, үржүүлэх, хуваах
чадвартай байв. Хэдийгээр энэ процессор 4 битийн хувьд үйлдэл хийх боломжтой ч заавар нь 8
битийн урттай байв. Өөрөөр хэлбэл энэ процессорын data bus нь 4 бит, address bus нь 8 битийн
өргөнтэй байв. Программ болон өгөгдөл нь тус тусдаа хадгалагддаг бөгөөд 1KB өгөгдөл, 4KB-ийн
хэмжээтэй программыг хадгалах чадвартай. 46 заавартай, 2300 транзистор ашиглаж байв. Clock
speed буюу хурд нь 108kHz (CPU-гийн үйлдэл хийх 1 цикл нь 8 зэрэг үйлдэл гүйцэтгэх циклээс
тогтох ба энэ үйлдэл гүйцэтгэх хурдыг clock speed гэх бөгөөд цаашид зүгээр л хурд гэж нэрлэе.
108kHz гэдэг нь 1 секундын хугацаанд 108k цикл хийх боломжтой гэсэн үг)
1972 онд Intel 4004-ийг сайжруулсан Intel 4040 процессорыг хийжээ. Энэ нь өмнөх хувилбараасаа
14 заавраар илүү, программ хадгалах санах ойн хэмжээ 8KB болтлоо нэмэгдсэн байлаа.
зураг 6.67.
Мөн оны 4 сард 8 битийн процессор болох Intel 8008 процессорыг үйлдвэрлэв.
Энэ нь нэгэн зэрэг 8 битийн 2 тоон дээр үйлдэл хийх чадвартай байлаа. Энэ
процессорын data bus нь 8 бит, address bus нь 14 бит, хурд нь 200kHz, 3450
транзистор ашигласан, санах ойн багтаамж нь 16KB болтлоо ихэссэн байв.
/зураг 6.67/
зураг 6.68.
1974 оны 4-р сард Intel 8080 процессор гарсан. Энэ нь 8008
процессортой төсөөтэй 8 битийн процессор боловч түүнээс арай
хурдан, зааврын тоо нь их, санах ойн багтаамж их г.м давуу
талуудтай байв. Мөн 16 битийн address bus-тай, 8 битийн data bus-
251
зураг 6.69.
тай, 6000 транзистор ашигласан, санах ойн багтаамж нь 64KB
болтлоо ихэссэн байв. Энэ процессор нь 3 хувилбартай бөгөөд
1974 онд гарсан 8080 хувилбар нь 2MHz хурдтай, 1976 онд гарсан
дараагийн хоёр хувилбарууд болох 8080А-2 нь 2.67MHz хурдтай,
8080А-1 нь 3.125MHz хурдтай байв. /зураг 6.68/
Энэ процессор дээр үндэслэгдэн анхны микрокомпьютер хийгдсэн.
Энэ нь 1975 оны 1-р сард бүтээгдсэн MITS Altair 8800 байв. /зураг
6.69/
зураг 6.70.
Энэ үеэс хэсэг инженерүүд 8080 процессорыг сайжруулах
зорилгоор Intel-ээс салан гарч Zilog Corporation-ийг байгуулан
8080-ийг сайжруулсан 8 битийн Z-80 процессорыг үйлдвэрлэжээ.
Z-80-ын хурд 2.5MHz, Z80-H (хожим Z80-C гэж нэрлэгдэх болсон)
нь 8MHz, сүүлд гарсан CMOS хувилбарынх нь хурд 10MHz байв.
Radio Shack-ынхан Z-80 процессорыг ашиглан TRS-80
микрокомпьютерийг хийжээ. 1984 онд Hitachi 1984-ийг
үйлдвэрлэсний дараа 1987 онд Zilog, Hitachi нар хамтран Z-80-ийн
бусад төхөөрөмжүүдтэй зохицон ажиллахад зориулагдсан Z-180 ба
HD64180Z процессоруудыг үйлдвэрлэжээ. Эдгээр нь Z-181, Z-182
гэсэн хувилбаруудтай. 1987 оны 7-р сард 16 битийн Z-280
процессорыг бүтээсэн бөгөөд 1994 онд 16/32 битийн Z-380
хувилбаруудыг гаргажээ. /зураг 6.70/
1974 онд Motorola-гийнхан Motorola 68000 процессорыг үйлдвэрлэжээ. Энэ нь Intel 8086 болон
MOSTech 6502 процессоруудын адил 8 битийн процессор байсан бөгөөд 8 битийн data bus, 16
битийн address bus-тай, хурд нь 1MHz байв. Энэ үеэс эхлэн процессорын хөгжил нь IBM (Intel
80х86) ба Apple Macintosh (Motorola 680х0) гэсэн 2 үндсэн чиглэлээр хөгжих болсон
зураг 6.71.
1978 онд анхны 16 битийн Intel 8086 процессор үйлдвэрлэгдсэн. Энэ
процессор 20 битийн address bus-тай, 16 битийн data bus-тай, 29000
транзистор ашигласан, санах ойн багтаамж нь 1МB болтлоо ихэссэн байв.
Энэ процессор нь 3 хувилбартай бөгөөд 8086 хувилбар нь 5MHz хурдтай,
8086-2 нь 8MHz хурдтай, 8086-1 нь 10MHz хурдтай байв. /зураг 6.71/
1979 онд 8086-г сайжруулсан 8088 процессор гарсан. Энэ нь анхны математик үйлдлийг
гүйцэтгэхэд зориулагдсан math процессор Floating Point Unit (FPU) 8087-г ашигласан байв. Intel-
ийнхэн энэ процессорын патентыг Advanced Micro Devices, Harris, Siemens зэрэг компаниудад
худалдснаар эдгээр компаниуд янз бүрийн хувилбаруудыг гаргажээ. Жишээлбэл Siemens-ийн
гаргасан хувилбар нь эдгээр хувилбаруудаас 2 дахин их хурдтай байв. Мөн 1981 онд гарсан NEC
V20 ба V30 хувилбарууд нь 8086 ба 8088-аас 30% хурдан байв.
Мөн худалдаанд зориулан 1980 онд 8 ба 16 битийн хувилбаруудтай 80186 процессороо гаргасан.
Худалдан авагчид түүний CHMOS ба HMOS chip ашигласан хувилбаруудаас сонгох боломжтой. 1990
оноос Intel-ийнхэн Enhanced 186 Family уруу шилжсэн. Ингэснээр system controller, interrupt
controller, DMA controller, timing circuitry right нь бүгд CPU-тэй хамт нэг схем /core/ дээр хийгдсэн.
Гэвч энэ процессорыг PC-д ерөөсөө ашиглаагүй.
зураг 6.72.
1982 оны 2-р сард санах ойн багтаамжийг 1MB байсныг нь 16MB хүртэл
ихэсгэсэн шинэ хувилбарыг гаргасан бөгөөд түүнийгээ Intel 80286 гэж
нэрлэсэн. Энэ процессор 24 битийн address bus-тай, 16 битийн data bus-
тай, 134000 транзистор ашигласан, санах ойн багтаамж нь 16МB болтлоо
ихэссэн, FPU 80287-г ашигласан байв. /зураг 6.72/
Энэ процессор нь 3 хувилбартай бөгөөд 80286 хувилбар нь 8MHz хурдтай, 80286-2 нь 10MHz
хурдтай, 80286-1 нь 12MHz хурдтай байв. Мөн энэ процессор нь физик санах ойгоос гадна
виртуаль санах ойг ашиглах боломжтой болсон. Мөн түүнчлэн нэгэн зэрэг олон үйлдлийг зэрэг
хийх боломжтой болсон нь тухайн үед гараад байсан DOS үйлдлийн системд ашиглагддаггүй
байсан боловч ирээдүйн үйлдлийн систем болох Windows үйлдлийн системийг хийх боломжийг
олгосон. Энэ процессорыг ашиглан 1984 онд IBM-ийнхэн Personal Computer AT компьютерийг
хийжээ. Энэ нь IBM S/360 ба Motorola 68030 процессортой адилхан. Motorola 68030 процессорыг
Мacintosh II компьютерт ашигласан бөгөөд энэ нь 32 битийн процессор байсан. Түүний 32 битийн
data bus, 32 битийн address bus-тай, хурд нь 30MHz байв.
252
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization
6. computer opganization

More Related Content

What's hot

U.cs101 алгоритм программчлал-10
U.cs101   алгоритм программчлал-10U.cs101   алгоритм программчлал-10
U.cs101 алгоритм программчлал-10
Badral Khurelbaatar
 
U.cs101 алгоритм программчлал-7
U.cs101   алгоритм программчлал-7U.cs101   алгоритм программчлал-7
U.cs101 алгоритм программчлал-7
Badral Khurelbaatar
 
P ii lekts-2 b-s-l hvvl
P ii lekts-2 b-s-l hvvlP ii lekts-2 b-s-l hvvl
P ii lekts-2 b-s-l hvvl
udwal555 bhus
 
компьютерийн програм хангамж
компьютерийн програм хангамжкомпьютерийн програм хангамж
компьютерийн програм хангамж
tseegii6
 
оролт гаралтын төхөөрөмжүүд
оролт гаралтын төхөөрөмжүүдоролт гаралтын төхөөрөмжүүд
оролт гаралтын төхөөрөмжүүд
erdenetuya_glu
 
сүлжээний зохион байгуулалт хичээл 8б
сүлжээний зохион байгуулалт хичээл 8бсүлжээний зохион байгуулалт хичээл 8б
сүлжээний зохион байгуулалт хичээл 8б
erdenebileg sugar
 
бие даалт № 1 borland c++
бие даалт № 1 borland c++бие даалт № 1 borland c++
бие даалт № 1 borland c++
2011bonus
 
Ii lеkts-4 tsah sor undykts
Ii lеkts-4 tsah sor undyktsIi lеkts-4 tsah sor undykts
Ii lеkts-4 tsah sor undykts
udwal555 bhus
 

What's hot (20)

тооллын сис 10т 2т
тооллын сис 10т 2ттооллын сис 10т 2т
тооллын сис 10т 2т
 
Java lecture3
Java lecture3Java lecture3
Java lecture3
 
6 анги компьютерийн түүх, үндсэн төхөөрөмжүүд
6 анги компьютерийн түүх, үндсэн төхөөрөмжүүд6 анги компьютерийн түүх, үндсэн төхөөрөмжүүд
6 анги компьютерийн түүх, үндсэн төхөөрөмжүүд
 
U.cs101 алгоритм программчлал-10
U.cs101   алгоритм программчлал-10U.cs101   алгоритм программчлал-10
U.cs101 алгоритм программчлал-10
 
Мэдээлэл, мэдээллийг хэмжих нэгж
Мэдээлэл, мэдээллийг хэмжих нэгжМэдээлэл, мэдээллийг хэмжих нэгж
Мэдээлэл, мэдээллийг хэмжих нэгж
 
U.cs101 алгоритм программчлал-7
U.cs101   алгоритм программчлал-7U.cs101   алгоритм программчлал-7
U.cs101 алгоритм программчлал-7
 
P ii lekts-2 b-s-l hvvl
P ii lekts-2 b-s-l hvvlP ii lekts-2 b-s-l hvvl
P ii lekts-2 b-s-l hvvl
 
Компьютерийн техник хангамж
Компьютерийн техник хангамжКомпьютерийн техник хангамж
Компьютерийн техник хангамж
 
чадварын үнэлгээ
чадварын үнэлгээ чадварын үнэлгээ
чадварын үнэлгээ
 
компьютерийн програм хангамж
компьютерийн програм хангамжкомпьютерийн програм хангамж
компьютерийн програм хангамж
 
компьютерийн сүлжээний техник хангамж
компьютерийн сүлжээний  техник хангамжкомпьютерийн сүлжээний  техник хангамж
компьютерийн сүлжээний техник хангамж
 
It101 7
It101 7It101 7
It101 7
 
Hardware
Hardware Hardware
Hardware
 
Тоон электроник /монгол/
Тоон электроник /монгол/Тоон электроник /монгол/
Тоон электроник /монгол/
 
оролт гаралтын төхөөрөмжүүд
оролт гаралтын төхөөрөмжүүдоролт гаралтын төхөөрөмжүүд
оролт гаралтын төхөөрөмжүүд
 
сүлжээний зохион байгуулалт хичээл 8б
сүлжээний зохион байгуулалт хичээл 8бсүлжээний зохион байгуулалт хичээл 8б
сүлжээний зохион байгуулалт хичээл 8б
 
Лекц №4
Лекц №4Лекц №4
Лекц №4
 
Cs101 lec2
Cs101 lec2Cs101 lec2
Cs101 lec2
 
бие даалт № 1 borland c++
бие даалт № 1 borland c++бие даалт № 1 borland c++
бие даалт № 1 borland c++
 
Ii lеkts-4 tsah sor undykts
Ii lеkts-4 tsah sor undyktsIi lеkts-4 tsah sor undykts
Ii lеkts-4 tsah sor undykts
 

Similar to 6. computer opganization

копьютерийн үүсэл хөгжил
копьютерийн үүсэл хөгжилкопьютерийн үүсэл хөгжил
копьютерийн үүсэл хөгжил
Nasaa_dawka
 
Pc бүтэц лекц 1
Pc бүтэц лекц 1Pc бүтэц лекц 1
Pc бүтэц лекц 1
Kumis Ermek
 
хэрэглээний програм лекц 1
хэрэглээний програм лекц 1хэрэглээний програм лекц 1
хэрэглээний програм лекц 1
Daagii Daju
 
хэрэглээний програм лекц 1
хэрэглээний програм лекц 1хэрэглээний програм лекц 1
хэрэглээний програм лекц 1
anjelo0028
 
Computerin tehnikin undes 1hicheeliin lektsiin huraangui
Computerin tehnikin undes 1hicheeliin lektsiin huraanguiComputerin tehnikin undes 1hicheeliin lektsiin huraangui
Computerin tehnikin undes 1hicheeliin lektsiin huraangui
E-Gazarchin Online University
 
компьютерийн үндэс хэрэглээ
компьютерийн үндэс хэрэглээкомпьютерийн үндэс хэрэглээ
компьютерийн үндэс хэрэглээ
adminsed
 
003 компьютерын техник хангамж
003 компьютерын техник хангамж003 компьютерын техник хангамж
003 компьютерын техник хангамж
Bobby Wang
 
Suljee cem 1
Suljee cem 1Suljee cem 1
Suljee cem 1
Mr_Endko
 

Similar to 6. computer opganization (20)

Pc tuux
Pc tuuxPc tuux
Pc tuux
 
копьютерийн үүсэл хөгжил
копьютерийн үүсэл хөгжилкопьютерийн үүсэл хөгжил
копьютерийн үүсэл хөгжил
 
МКонт 01
МКонт 01МКонт 01
МКонт 01
 
Pc бүтэц лекц 1
Pc бүтэц лекц 1Pc бүтэц лекц 1
Pc бүтэц лекц 1
 
лекц-1
лекц-1лекц-1
лекц-1
 
хэрэглээний програм лекц 1
хэрэглээний програм лекц 1хэрэглээний програм лекц 1
хэрэглээний програм лекц 1
 
хэрэглээний програм лекц 1
хэрэглээний програм лекц 1хэрэглээний програм лекц 1
хэрэглээний програм лекц 1
 
Computerin tehnikin undes 1hicheeliin lektsiin huraangui
Computerin tehnikin undes 1hicheeliin lektsiin huraanguiComputerin tehnikin undes 1hicheeliin lektsiin huraangui
Computerin tehnikin undes 1hicheeliin lektsiin huraangui
 
Intel процессор
Intel процессорIntel процессор
Intel процессор
 
It101-3
It101-3It101-3
It101-3
 
компьютерийн үндэс хэрэглээ
компьютерийн үндэс хэрэглээкомпьютерийн үндэс хэрэглээ
компьютерийн үндэс хэрэглээ
 
компьютэрийн төрлүүд
компьютэрийн төрлүүдкомпьютэрийн төрлүүд
компьютэрийн төрлүүд
 
003 компьютерын техник хангамж
003 компьютерын техник хангамж003 компьютерын техник хангамж
003 компьютерын техник хангамж
 
IT201-лекц1.pptx
IT201-лекц1.pptxIT201-лекц1.pptx
IT201-лекц1.pptx
 
Com
ComCom
Com
 
Computer
ComputerComputer
Computer
 
Lec02 structures (2)
Lec02 structures (2)Lec02 structures (2)
Lec02 structures (2)
 
Suljee cem 1
Suljee cem 1Suljee cem 1
Suljee cem 1
 
1
11
1
 
IT-1
IT-1IT-1
IT-1
 

More from Badarch Zorig (6)

7. smps
7. smps7. smps
7. smps
 
5. digital electronics
5. digital electronics5. digital electronics
5. digital electronics
 
4. op amp
4. op amp4. op amp
4. op amp
 
3. transistor
3. transistor3. transistor
3. transistor
 
2. diode
2. diode2. diode
2. diode
 
1. analog
1. analog1. analog
1. analog
 

6. computer opganization

  • 1. 6.1.1. Компьютер Компьютер нь маш олон тооны элементүүдээс тогтсон комплекс байгууламж. Компьютерээр хийгдэж байгаа бүхий л үйлдлүүдийг ерөнхийд нь дараах байдлаар ангилж болно. Үүнд: /зураг 6.1/ Өгөгдлийг боловсруулах Өгөгдлийг хадгалах Өгөгдлийг шилжүүлэх Хяналтын хэсэг буюу дээрх хэсгүүдийн үйл ажиллагааг хянаж холбож өгөх зориулалттай зураг 6.1. Эндээс үзвэл компьютер дээр дараах 4 үндсэн үйлдэл хийгдэж байна. Аль нэг төхөөрөмжөөс ирсэн өгөгдлийг өөр төхөөрөмж рүү шилжүүлэх /зураг 6.2/ Аль нэг төхөөрөмжөөс ирсэн өгөгдлийг хадгалах, эсвэл хадгалсан өгөгдлийг аль нэг төхөөрөмж рүү илгээх /зураг 6.3/ Санах ойд хадгалсан өгөгдлийг боловсруулаад буцааж хадгалах /зураг 6.4/ Гаднаас ирсэн өгөгдлийг боловсруулаад хадгалах, эсвэл хадгалсан өгөгдлийг боловсруулаад өөр төхөрөөмж рүү илгээх /зураг 6.5/ зураг 6.2. зураг 6.3. 219
  • 2. зураг 6.4. зураг 6.5. 6.1.2. Компьютерийн товч түүхээс Компьютерийн 1-р үе буюу электрон лампны үе: (1945-58) ENIAC зураг 6.6. Pennsylvania-ийн их сургуульд 1943 онд 10-тын тооллын системд архиметик үйлдэл хийх боломжтой, электрон лампнууд ашигласан байгууламжийг хийж 1946 онд дуусгажээ. Энэ нь 18000 электрон ламп, 70000 резистор, 10000 конденсатор, 6000 switch, 1500 релей ашигласан, асар том буюу 30х60 feet хэмжээтэй, 30 тонн жинтэй, 140kW тэжээл шаарддаг аварга байгууламж байв. Энэ байгууламжийг switch-үүдийн тусламжтайгаар программчлах боломжтой бөгөөд үр дүнг хадгалах 20 accumulator-тай (регистертэй), 1 секундэд 5000 үйлдэл хийх чадвартай байв. (зураг 6.6) Энэ байгууламжийг 1955 он хүртэл ашиглаж байв. IAS компьютер буюу Von Neumann-ий компьютер ENIAC бүтээгдэхүүнд программыг оруулах, өөрчлөхөд нэлээд түвэгтэй байсан. Программ нь тусгай санах ойд хадгалагдах бөгөөд эндээс программуудыг дуудан ажиллуулдаг байв. ENIAC төслийн программыг хадгалах хэсэгт зөвлөгчөөр ажиллаж байсан математикч Von Neumann 1946 онд өөрийн нөхдийн хамт IAS компьютерийг хийх загварыг гаргажээ. (6.6. IAS компьютер гэдгээс дэлгэрэнгүйг унш). Гэхдээ энэ компьютер нь бүрэн хийгдээгүй бөгөөд 1952 он гэхэд түүний туршилтын загварыг л (EDVAC) хийсэн юм. Иймээс Von Neumann-ий IAS компьютер нь орчин үеийн компьютер ямар зохион байгуулалттай, хэрхэн программыг хадгалах, түүнийг гүйцэтгэх зэргийг тодорхойлж өгсөн загвар болон үлджээ. Үүнийг орчин үеийн компьютерийн анхны эцэг ч гэж нэрлэдэг. Энэ компьютер нь өгөгдөл болон зааврыг хадгалахад зориулагдсан тусгай санах ойтой, санах ойн тус тусдаа хаягтай үүрнүүдээс тогтдог, архимтетик логик нэгж нь 2-тын тооллын системд үйлдэл гүйцэтгэдэг байв. UNIVAC 1950-аад оны сүүлээр Sperry ба IBM гэсэн компьютер үйлдвэрлэдэг анхны 2 компани үүсэж бий болов. 1947 онд Eckert, Mauchly нар анхны Eckert-Mauchly Computer Corporation-ийг үндэслэн байгуулжээ. Энэ корпорациас гаргасан анхны бүтээгдэхүүн нь UNIVAC I (Universial Automatic Computer) компьютер байлаа. Удалгүй энэ корпорациас UNIVAC төслийг аван Sperry-Rand Corporation салан гарч UNIVAC серийн компьютеруудыг цаашид үргэлжлүүлэн бүтээжээ. Удалгүй UNIVAC I-ийг сайжруулсан хурдтай, санах ойн хэмжээ ихтэй UNIVAC II компьютерийг бүтээснээр анхны бизнэсийн зорилгоор бүтээгдсэн компьютерууд худалдаанд гарсан юм. Мөн Sperry-гийнхэн UNIVAC-ийн 1100 цувралыг гаргасан юм. Энэ цувралын анхных нь UNIVAC 1103 загвар бөгөөд олон жил эрдэм шинжилгээний зорилгоор ашиглагдаж байжээ. 220
  • 3. IBM 700 Энэ үед буюу 1953 онд IBM-ийнхэн анхны компьютер болох IBM 701 компьютерээ гаргажээ. Үүнийг эрдэм шинжилгээ, судалгааны зорилгоор ашиглаж байв. 1955 онд дараагийн IBM 702 компьютерийг худалдаанд зориулан гаргажээ. Floating Point архиметик IBM-ийн 704 компьютер нь зөвхөн бүхэл тооны хувьд архиметикийн үйлдлийг гүйцэтгэхээс гадна Floating Point үйлдлийг гүйцэтгэдэг (Gene Amdahl) байв. Компьютерийн 2-р үе буюу транзисторын үе: (1958-64) 1947 онд Bell Labs-д анхны транзисторыг хийсэн нь электроникийн түүхэнд электрон лампыг транзистороор сольсон шинэ эргэлт гаргажээ. Энэ нь мөн адил компьютерийн нэгэн шинэ үе эхэлснийг зарлажээ. Гэхдээ энэ үед зохиогдож байсан компьютерууд жишээ IBM 700 серийн компьютерууд шинэ технологийг авч ашиглаагүй юм. 1957 онд DEC корпораци байгуулагдаж тэр жилдээ анхны миникомпьютер болох PDP-1 компьютерээ гаргажээ. IBM-ийнхэн 1960 оноос эхлэн IBM 7000 серийн компьютерээ хийж эхэлсэн. Энд 1960 онд 7090, 1962 онд 7094 I, 1964 онд 7094 II компьютерээ тус тус гаргасан бөгөөд эдгээр нь транзистор дээр үндэслэгдсэн байв. Виртуал ой ба pipeline 1962 онд Tom Kilburn-ий зохиосон Atlas компьютер нь анх виртуал санах ой, зааврыг биелүүлэх дамжлага pipeline-ийг ашигласан. Мультпроцессор 1964 онд гарсан UNIVAC-ийн 1108II загвар нь 3 микропроцессорыг ашигладаг. Компьютерийн 3-р үе буюу интегралчлагч хэлхээний үе: (1964-74) 2-р үеийн компьютерууд нь ойролцоогоор 10000 транзистор ашиглаж байсан бөгөөд энэ тоо нь цаашид ч өсөхөөр байсан нь компьютер үйлдвэрлэгчдийн хувьд шийдвэрлэвэл зохих асуудлын нэг болжээ. Энэ үед 1958 онд анхны интегралчлагч хэлхээг зохиосноор микроэлектроникийн үе эхлэв. Интегралчлагч хэлхээ нь нэг chip-д асар олон транзисторыг багтаах боломжийг олгосноор компьютерийн овор хэмжээг багасгах боломжтой болжээ. Жишээ нь SSI (small scale intergation) нь 10 хүртэл транзистор, MSI (medium scale integration) нь 10-аас 100 хүртлэх транзистор, LSI (large scale integration) 100-гаас 1000 хүртлэх транзисторыг нэг chip дээр агуулж байв. Энэ шинэ технологийг ашигласан анхны компьютерууд нь IBM System 360/370, DEC PDP-8 компьютерууд юм. Энэ үеэс эхлэн бүх компьютерууд нэгэн ижил бүтэцтэй болсон. Өөрөөр хэлбэл компьютерийг үйлдвэрлэдэг олон компаниуд байдаг ч тэдгээрийн үйлдвэрлэсэн компьютерууд нь ижил архитектуртай болсон. 1964 онд IBM-ийнхэн 7000 хувилбараа гаргасан тэр жил өөр нэгэн урсгалыг гаргажээ. Энэ нь IBM System/360 юм. Ингээд ердөө хэдхэн жилийн дотор үүний нэлээд хэдэн хувилбар болох Model 30, 40, 50, 65, 75 гэсэн хувилбаруудыг гаргасан юм. IBM-ийнхэн System/360-ийг хийсэн тэр жил DEC-ийнхэн PDP-8 гэсэн анхны миникомпьютерийг гаргажээ. (зураг 6.7) зураг 6.7. Хагас дамжуулагч санах ой Энэ үеийн компьютеруудын хувьд гарсан нэг дэвшил нь хагас дамжуулагч санах ойг ашиглах болсон явдал. 1970 оноос хойш хагас дамжуулагч санах ойн хувьд 8 үе өнгөрчээ. Эдгээр үеүдэд нэг chip-д 1K, 4K, 16K, 64K, 256K, 1M, 4M, 16M битүүдийг багтааж байв. Кэш ой IBM System/360-ийн 85-р загвар нь үндсэн санах ой болон микропроцессорын хооронд өгөгдлийг дамжуулалтыг хурдасгах зорилгоор кэш ойг ашигласан. Микропроцессор 3-р үеийн компьютеруудын хувьд гарсан өөр нэг дэвшил нь микропроцессорыг хийсэн явдал юм. 221
  • 4. 1971 онд Intel анхны микропроцессор болох 4004-ийг гаргасан бөгөөд энэ нь CPU түүний бүх бүрэлдэхүүнүүдийг нэг chip-д багтаасан тул анхны микропроцессорын эцэг болсон юм. Энэ нь 4 битийн 2 тоог хооронд нэмэх үйлдлийг гүйцэтгэж байв. 1972 онд 8 битийн 8008 микропроцессороо гаргасан бөгөөд энэ нь 2 ширхэг 4004-ийг ашиглаж байв. Эдгээр микропроцессоруудыг судалгаа шинжилгээний зорилгоор л ашиглаж байсан бол 1974 онд микрокомпьютерт зориулан анхны 8 битийн 8080 микропроцессорыг гаргажээ. Энэ үеэс эхлэн Intel-ийнхэн 80x86 серийн процессоруудаа үйлдвэрлэж эхэлжээ. Жишээ нь 1978 онд 16 битийн 8086, 1985 онд 32 битийн 80386, 2003 онд 64 битийн Itanium процессороо тус тус бүтээжээ. PowerPC 1975 онд IBM-ийнхэн анхны миникомпьютер болох RISC технологийг ашигласан IBM 801 загварыг хийжээ. Энэ нь RISC I процессорыг ашиглаж байв. Гэсэн ч 801 загвар нь бүрэн төгс хийгдээгүй зөвхөн туршилтын загвар төдий байсан юм. Ингээд худалдаанд зориулан 1986 онд анхны RISC workstation болох RT PC-ийг гаргажээ. Гэвч энэ нь амжилттай болсонгүй. 1990 онд өмнөх загваруудыг ашиглан IBM RISC system/6000-ийг бүтээснээр цаашид өндөр хурдтай workstation-уудыг үйлдвэрлэх эхлэлийг тавьжээ. Удалгүй IBM Motorolа нар хамтран Motorola- гийн гаргасан 68000 серийн микропроцессоруудыг үйлдвэрлэж эхэлсэн бөгөөд Apple-ийнхан Motorola chip-ийг ашигласан Macintosh компьютерийг үйлдвэрлэх болжээ. Эдгээр компьютерууд нь PowerPC архитектуртай анхны компьютерууд юм. Тун удалгүй PowerPC архитектуртай 4 загварыг гаргасан нь 601 (32 битийн анхны загвар), 603 (энгийн хэрэглэгч нарт зориулсан үнэ хямдтай загвар), 604 (серверүүдэд зориулан өндөр хүчин чадалтай загвар), 620 (64 битийн анхны загвар) Компьютерийн 4-р үе буюу VLSI-ийн үе: (1971-ээс одоог хүртэл) Нэг chip-д багтах транзисторын хэмжээг 10000-100000 хүртэл ихэсгэж чадсан энэ үеийн компьютеруудыг 4-р үеийн компьютерууд гэдэг. Энэ үеийн анхны компьютерууд нь IBM 3090, Cray XMP, IBM PC нар юм. Энэ үеийн компьютеруудын гол дэвшил нь компьютерийн сүлжээ, оптик диск, обьект хандалттай программчлал юм. Компьютеруудын 5-р үе буюу ULSI-ийн үе: Нэг chip-д багтах транзисторын тоо 100000-1000000 болтол ихэссэн. Хамгийн гол дэвшил нь параллель систем, параллель программчлал юм. Энэ үеийн компьютерийн гол төлөөлөгч нар нь Sun Spare, Intel Paragon нар юм. Энэ үеийн компьютеруудын хурдны гол үзүүлэлт нь нэг секундэд гүйцэтгэх floating point архиметикийн үйлдэл MFLOPS (millions of floating point operations per second) юм. 6.2.1. Компьютерийн бүтэц Компьютерийг дараах 4 үндсэн хэсгээс тогтдог гэж үзэж болно. /зураг 6.8/ Микропроцессор буюу Central Processing Unit (CPU) – өгөгдлийг боловсруулах хэсэг Санах ой буюу Main Memory - өгөгдлийг хадгалах хэсэг Оролт/гаралтын хэсэг буюу Input/Output – микропроцессор болон бусад төхөөрөмж (монитор, гар, хэвлэх төхөөрөмж г.м)-ийн хооронд өгөгдлийг дамжуулах хэсэг Системийн холболт буюу System Interconnection – дээрх гурван хэсгийг хооронд холбож өгөх зориулалттай хэсэг 222
  • 5. зураг 6.8. 6.2.2. Компьютерийн заавар Компьютерээр гүйцэтгэх үндсэн үйлдэл нь программыг биелүүлэх явдал юм. Программууд нь санах ой дахь заавруудын (instruction) тусламжтайгаар гүйцэтгэгдэнэ. Өөрөөр хэлбэл компьютер дээрх хийгдэх бүхий л үйлдлүүд нь тусгайлан тодорхойлогдсон заавруудын дагуу биелэгддэг гэж үзэж болно. Эдгээр зааврууд нь санах ойд хадгалагдаж байдаг. Хамгийн энгийн байдлаар программыг авч үзвэл эхлээд хэрэгтэй зааврыг санах ойгоос олж авах, дараа нь тухайн зааврыг гүйцэтгэх буюу биелүүлэх, дараа нь дараагийн үйлдэл гүйцэтгэхэд шаардлагатай зааврыг санах ойгоос олж авах. Тэгвэл программыг дэс дараалсан заавруудыг биелүүлэх явц гэж ойлгож болно. Нэг зааврыг биелүүлэх явцыг зааврын цикл (instruction cycle) гэж нэрлэнэ. Зааврын нэг цикл нь зааврыг санах ойгоос олж авах fetch (барьж авах) cycle, зааврыг гүйцэтгэх буюу биелүүлэх execute (гүйцэтгэх) cycle гэсэн 2 дэд хэсгээс тогтно. /зураг 6.9/ зураг 6.9. Зааврын цикл нь үндсэндээ дараах шатаар явагдана. /зураг 6.10/ Зааврын хаягийг тогтоох – зааврын санах ойд байрлах хаягийг тогтооно. Зааврыг олж авах – санах ойгоос зааврыг олж авна. Зааврын үйлдлийг тогтоох – зааврын opcode-ийн тусламжтайгаар тухайн заавраар гүйцэтгэх үйлдлийг тогтооно. Өгөгдлийн хаягийг тогтоох – тухайн зааврын дагуу боловсруулах өгөгдлийн санах ой дахь хаягийг тогтооно. Өгөгдлийг олж авах – санах ойгоос өгөгдлийг олж авна. Өгөгдлийг боловсруулах – тухайн зааврын дагуу өгөгдлийг боловсруулна. Үр дүнг хадгалах хаягийг тогтоох – тухайн зааврын дагуу боловсруулсан үр дүнг хадгалах санах ойн хаягийг тогтооно. Үр дүнг хадгалах - өмнөх үйлдлээр тогтоосон хаягийн дагуу үр дүнг хадгална. 223
  • 6. зураг 6.10. 6.2.3. Регистер Процессор нь үйлдлийг гүйцэтгэхдээ дараах регистерүүдийг санах ойн журмаар ашиглана: Memory Address Register (MAR) – санах ойгоос MBR рүү унших болон бичих үгийн санах ойд дахь хаягийг агуулна. Memory Buffer Register (MBR) – санах ойгоос унших болон бичих үгийг агуулна. Program Counter (PC) – дараагийн биелүүлэх зааврын хаягийг тогтооно. Instruction Register (IR) – заавраар гүйцэтгэх үйлдлийг тогтооно. Accumuliator (AC) – ALU үйлдлийг гүйцэтгэсний дараа үр дүнг хадгалахад хэрэглэнэ. Заавар ба өгөгдөл нь адилхан 16 битийн урттай байна гэж үзье. Тэгвэл санах ойн нь 216 үүртэй байх ба санах ойн нэг үүр нь 16 битийн урттай байна. Үүнийг үг (word) гэж нэрлэнэ. Өөрөөр хэлбэл санах ойн нэг үүрэнд байрлах зүйлийг үг гэнэ. Санах ойн нэг үгэнд заавар ч байж болно, өгөгдөл ч байж болно. Заавар үг нь тухайн заавраар гүйцэтгэх ёстой үйлдлийг тодорхойлсон op code (үйлдлийн код) ба тухайн зааврын санах ойд байрлах хаяг гэсэн 2 мэдээллийг агуулна. Жишээлбэл заавар 16 битийн урттай бөгөөд түүний эхний 4 битийг op code, сүүлийн 12 битийг хаяг эзэлдэг гэвэл заавар нь 24 =16 ялгаатай op code-той, 212 =4096 (4K) хаягтай байна. РС нь дараагийн үйлдэл гүйцэтгэх ёстой зааврын санах ой дахь хаягийг тогтооно. Иймээс РС нь хэрэгтэй зааврыг олж авсны дараагаар дараагийн шаардлагатай зааврын хаягаар үргэлж шинэчлэгдэж байдаг. IR нь тухайн олж авсан зааврын дагуу ямар үйлдэл хийх ёстойг тогтоож өгнө. Энд зааврын гүйцэтгэх үйлдлийг тодорхойлсон оpсode агуулагддаг. MAR шууд address bus-тай, MBR шууд data bus-тай холбогдсон байна. АС нь ALU-гаар боловсруулагдсан үр дүнг хадгална. Жишээ 6.1. Заавар нь санах ойн 300 гэсэн хаягтай үүрт хадгалагдаж байг. Тэгвэл энэ үүрт байгаа зааврыг IR-д татан аваачих бөгөөд энд тухайн зааврыг ямар үйлдэл гүйцэтгэхийг тогтоож өгнө. Харин РС нь дараагийн зааврын хаягаар шинэчлэгдэнэ. /зураг 6.11/ зураг 6.11. Үүнээс гадна дараах регисторүүд процессор дотор агуулагдаж байдаг. I/O Address Register (I/O AR) – гадаад төхөөрөмж рүү хандах хаягийг агуулна. I/O Buffer Register (I/O BR) – CPU болон I/O module 2-ын хооронд өгөгдөл дамжуулахад ашиглана. АС – Accumulator нь ихэвчлэн ALU уруу оруулах өгөгдлийг түр хадгалахад ашиглана. Жишээ 6.2. 2 тоог хэрхэн нэмэхийг авч үзье. Энэ үйлдлийг хийхэд шаардлагатай эхний зааврын хаягийг PC олж тогтоох ба энэ заавар нь санах ойн 300 гэсэн үүрэнд байг. РС зааврын хаягийг тогтоосноор энэ зааврыг Instruction Register (IR)–д дуудаж ачаална. IR-д ирсэн зааврын эхний 4 битийн буюу opcode-ийн тусламжтайгаар энэ заавраар хийх үйлдлийг тогтооно. Дараагийн 12 битийн тусламжтайгаар энэ үйлдлийг гүйцэтгэхэд ашиглагдах өгөгдлийн санах ой дахь хаягийг тогтооно. Энэ жишээнд санах ойн 300-р үүрэнд байрлах зааврын opcode нь 1, санах ойн хаяг нь 940 байна. 224
  • 7. Энэ заавар нь санах ойн 940-р үүрэнд байрлах өгөгдлийг АС-д ачаалах гэсэн үйлдэл байна. /зураг 6.12/ зураг 6.12. Үүний дараа РС шинэчлэгдэнэ. Өөрөөр РС нь дараагийн зааврын хаягийг тогтоох ба энэ заавар нь санах ойн 301-р үүрэнд байрлана. Энэ заавар нь санах ойн 941-р үүрэнд байрлах өгөгдлийг АС-д байгаа утган дээр нэмэх үйлдэл байна. /зураг 6.13/ зураг 6.13. Дараагийн зааврыг РС тогтоох ба энэ заавар нь санах ойн 302-р үүрэнд байрлана. Энэ заавар нь АС-д байгаа өгөгдлийг санах ойн 941-р үүрэнд бичих үйлдэл байна. /зураг 6.14/ зураг 6.14. Дээрх жишээнд 3 заавар хэрэглэгдлээ. Энэ 3 зааврын op code нь дараах утгатай байлаа. 110=000116 – санах ойгоос АС уруу ачаалах 210=001016 – АС-гээс санах ой уруу бичих 510=010116 – санах ойд байгаа утгыг АС-д байгаа утганд нэмэх Мөн дээрх жишээнд ойлгоход хялбар байх үүднээс бусад шаардлагатай регистерүүд болох MAR, MBR-ийг тооцсонгүй. 6.2.4. IAS компьютер 1946 онд математикч von Neumann болон түүний нөхөд ENIAC төсөл дээр ажиллаж байхдаа үйлдэл гүйцэтгэх болон хадгалах чадвартай нэгэн шинэ компьютер зохиосон бөгөөд түүнийгээ IAS компьютер гэж нэрлэжээ. IAS компьютер нь дараах хэсгүүдээс тогтно: /зураг 6.15/ Үндсэн санах ой буюу Main Memory - өгөгдөл (data) болон заавар (instruction)-ыг хадгална. Арифметик логик хэсэг буюу Arithmetic Logic Unit (ALU) - өгөгдлийг боловсруулна. Хяналтын хэсэг буюу Control Unit – санах ойгоос зааврыг олж авах, түүнийг түүнийг биелүүлэх зэрэг бүхий л үйлдлийг хянана. Оролт/гаралтын хэсэг буюу Input/Output Equipment – компьютерийг бусад төхөөрөмжүүдтэй холбох зориулалттай гэсэн 4 хэсгээс тогтно. 225
  • 8. зураг 6.15. IAS-ийн санах ой нь өгөгдөл санаж хадгалахад зориулагдсан 1000 үүртэй бөгөөд нэг үүрэнд 40 битийн мэдээлэл байрлана. Үүнийг нь үг (word) гэнэ. Иймнээс IAS-ийн хувьд 1 үг нь 40 бит урттай байх ба энд өгөгдөл (data) ба заавар (instruction)-ын аль нэг нь байрлана. Жишээ нь өгөгдөл нь тоо (number word) байвал эхний бит нь sign bit (тоог нэмэх хасах болохыг тогтоох), үлдсэн хэсэг нь тоог, харин заавар (instruction word) бол тус бүр нь 20 битийн урттай зүүн ба баруун гэсэн 2 заавраас тогтоно. Өөрөөр хэлбэл IAS-ийн заавар нь 20 битийн урттай байх бөгөөд санах ойн нэг үүрэнд 2 заавар байрлана. Зааврын эхний 8 битийг тухайн заавраар гүйцэтгэх үйлдлийг тодорхойлсон opcode, үлдсэн 12 битийг тухайн зааврын дагуу үйлдлийг гүйцэтгэхэд ашиглагдах санах ойн хаягийг агуулна. (зураг 6.16) зураг 6.16. IAS компьютерт дараах санах ой буюу регистерүүдийг ашиглана. (зураг 6.17) Memory Buffer Register (MBR) – санах ойгоос унших болон бичих үгийг хадгална. Memory Address Register (MAR) – MBR рүү унших болон бичих үгийн санах ой дахь хаягийг хадгална. Instruction Register (IR) – тухайн зааврын дагуу гүйцэтгэх үйлдлийг тодорхойлсон opcode-ийг агуулна. Instruction Buffer Register (IBR) – санах ойгоос татан авсан үгэнд багтах заавруудын ашиглаагүй үлдсэн зааврыг нь хадгална. Program Counter (PC) – дараагийн зааврын санах ой дахь хаягийг тогтооно. Accumulator (AC) and Multiplier-Quotient (MQ) – ALU-гийн гүйцэтгэсэн үйлдлийн үр дүнг хадгална. Үндсэн 40 битийг АС-д, үлдсэн хэсгийг нь MQ-д хадгална. 226
  • 9. зураг 6.17. Ямар нэгэн үйлдлийг тодорхойлсон зааврыг биелүүлэх үйл явцыг зааврын цикл (instruction cycle) гэх бөгөөд дараах 2 хэсгээс тогтно. Үүнд: Зааврыг олж авах (fetch instruction) - Зааврыг IBR-д хадгалагдаж байгаа заавар эсвэл санах ойгоос MBR-ийн рүү ачаалагдсан үгнээс олж авна. Ингээд IR уруу зааврын opcode-ийг, MAR уруу тухайн заавоын санах ой дахь хаягийг нь илгээнэ. Хэрэв зааврыг санах ойгоос MBR уруу ачаалагдсан үгнээс олсон бол үлдэх зааврыг IBR уруу хуулна. Зааврыг биелүүлэх (executed instruction) - IR дэх зааврын opcode-ийн дагуу ALU үйлдлийг гүйцэтгээд үр дүнг АС болон MQ-д хадгална. Дараагийн үйлдлийг гүйцэтгэх зааврыг PC тогтоож энэ зааврын хаягийг MAR рүү илгээнэ. Жишээ нь IAS-ийн зааврыг барьж авах цикл нь дараах шатаар явагдана. /зураг 6.18/ Дараагийн заавар IBR-д байгаа эсэийг шалгана. Хэрэв дараагийн заавар IBR-д байвал заавал санах ой уруу хандах шаардлагагүй болно. IBR-д байгаа зааврын opcode-ийг IR-д, хаягийн хэсгийг MAR-д хуулна. Энэ заавар нь зүүн заавар байвал зааврын op code нь 0-оос 7-р бит, хаяг нь 8-аас 19-р бит байна. Ингээд PC шинэчлэгдсэнээр зааврыг барих цикл дуусна. Харин дараагийн заавар IBR-д байхгүй бол PC-гээс зааврын хаягийг MAC уруу хуулна. Дараа нь санах ойгоос MAC-аас авсан хаягтай санах ойн үүрэнд байрлах үгийг MBR уруу хуулна. Энд M(MAC) гэдэг нь санах ойн MAC гэсэн хаяганд байгаа үг гэж ойлгоно. MBR-д хуулсан үг нь 2 заавраас тогтсон байх тул аль заавар нь хэрэгтэй болохыг тогтооно. Үүний тулд ашиглах ёстой заавар маань зүүн заавар нь мөн эсэхийг шалгана. Хэрэв зүүн заавар мөн бол IBR-д баруун зааврыг хуулна. Энэ заавар нь 20-оос 39-р битэд багтсан байна. Мөн зүүн зааврын opcode-ийг IR-д, хаягийн хэсгийг MAR-д хуулна. Зүүн зааврын op codeнь 0-оос 8-р бит, хаягийн хэсэг нь 9-өөс 19-р битэд байрласан байна. Ингэснээр зааврыг барих цикл дуусаж PC шинэчлэгдэнэ. Харин зүүн заавар биш бол баруун зааврын opcode-ийг IR-д, хаягийн хэсгийг MAR-д хуулна. Баруун зааврын opcode нь 20-оос 27-р бит, хаягийн хэсэг нь 28-өөс 39-р битэд байрласан байна. Ингээд PC шинэчлэгдсэнээр зааврыг барих цикл дуусна. 227
  • 10. зураг 6.18. IAS-д нийтдээ өгөгдлийг дамжуулах, word-д ирсэн 2 зааврыг салгах, арифметикийн (нэмэх, хасах, үржүүлэх, хуваах), хаягийг өөрчлөх зэрэг үйлдэл гүйцэтгэхийг тодорхойлсон 21 зааврыг ашиглана. Зааврын төрөл Op code Ассемблер Тайлбар Дамжуулах 00001010 LOAD MQ MQ-д байгаа өгөгдлийг АС-д хуулна 00001001 LOAD MQ, M(X) Санах ойн Х хаяганд байгаа үгийг MQ-д хуулна 00100001 STOR M(X) AC–д байгаа зүйлийг санах ойн Х хаяганд хадгална 00000001 LOAD M(X) M(X)-ийг АС уруу хуулна 00000010 LOAD –M(X) -M(X)-ийг АС уруу хуулна 00000011 LOAD |M(X)| M(X)-ийн абсолют утгыг АС уруу хуулна 00000100 LOAD -|M(X)| M(X)-ийн абсолют утгын сөргийг АС уруу хуулна Branch 00001101 JUMP M(X,0:19) M(X)-ийн зүүн хэсгээс дараагийн зааврыг олж авна 00000100 JUMP M(X,20:39) M(X)-ийн баруун хэсгээс дараагийн зааврыг олж авна 00001111 JUMP+ M(X,0:19) Хэрэв AC-ийн утга негатив биш бол дараагийн зааврыг M(X)-ийн зүүн хэсгээс олж авна 00010000 JUMP+ M(X,20:39) Хэрэв АС-ийн утга негатив биш бол дараагийн зааврыг M(X)-ийн баруун хэсгээс олж авна Архиметик 00000101 ADD M(X) AC AC+M(X) буюу АС дээр M(X)-г нэмээд гарсан үр дүнг АС-д хадгална 00000111 ADD |M(X)| AC AC+|M(X)| 00000110 SUB M(X) AC AC-M(X) 00001000 SUB |M(X)| AC AC-|M(X)| 00001011 MUL M(X) AC AC*M(X) 00001100 DIV M(X) AC AC/M(X) 00010100 LSH Shift left буюу АС-ийн утгыг зүүн тийш 1 байрлалаар шилжүүлнэ 00010101 RSH Shift right буюу АС-гийн утгыг баруун тийш 1 байрлалаар шилжүүлнэ Хаягийг өөрчлөх 00010010 STOR M(X,8:19) Санах ойн Х хаягтай үүрний зүүн хэсэгт АС-д байгаа өгөгдлийг хадгална 00010011 STOR M(X,28:39) Санах ойн Х хаягтай үүрний баруун хэсэгт АС-д байгаа өгөгдлийг хадгална 228
  • 11. 6.2.5. Тасалдал Компьютерийн хэвийн үйл ажиллагааг хангах зорилгоор процессорын гүйцэтгэх зааврыг таслах шаардлага заримдаа гардаг. Жишээлбэл арифметикийн overflow, тоог тэгд хуваах зэрэг үйлдлүүдийг гүйцэтгэхийг оролдох, I/O контоллертой харилцах үед алдаа гарах, санах ойд алдаа гарсан г.м тохиолдлуудад процессорын үйлдлийг тасалж санах ойг чөлөөлж өгөх шаардлагатай болдог. Мөн түүнчлэн тасалдлыг процессорын хурдыг бүрэн ашиглахад ашигладаг. Өөрөөр хэлбэл ихэнх гадны төхөөрөмжүүдийн хурд процессорын хурднаас олон дахин бага байдаг. Жишээлбэл процессор өгөгдлийг хэвлэх төхөөрөмж рүү илгээсэн тохиолдолд принтер өгөгдлийг барьж автал процессор пауз авдаг. Өөрөөр хэлбэл аливаа бичих үйлдлийн дараа процессор хэсэг хугацаанд сул зогсоно. Процессорын гүйцэтгэх аливаа үйлдэл нь дэс дараалсан заавруудыг гүйцэтгэх явдал байдаг тухай үзсэн. Хэдийгээр процессор нэг секундын хугацаанд хэдэн мянган цикл хийж амждаг ч гадны төхөөрөмж рүү өгөгдөл бичих хугацаанд процессор ямар нэгэн үйлдэл гүйцэтгэдэггүй. Гэтэл энэ хугацаанд процессор өөр ямар нэгэн заавруудыг биелүүлэх боломжтой байдаг. Ийм тохиолдлуудад тасалдлыг ашиглана. Тасалдал нь процессорын гүйцэтгэх үйлдлийг зогсооно. Жишээ нь тасалдал ашиглаагүй тохиолдолд оролт гаралтын төхөөрөмжийг ашиглах явц нь дараах байдалтай байна. Энд хэрэглэгчийн программ нь ямар нэгэн үйлдлийг гүйцэтгэсний дараа гарсан үр дүнг оролт гаралтын төхөөрөмжид бичдэг байг. Тэгвэл эхлээд түүн рүү өгөгдлийг дамжуулна, дараа нь тухайн төхөөрөмжид өгөгдлийг бичнэ, эцэст нь эргэн процессор уруу хандана. Эндээс үзвэл оролт гаралтын төхөөрөмжид өгөгдлийг бичих үед процессор ямар нэгэн үйлдэл гүйцэтгэхгүй хүлээж байдаг байх нь. /зураг 6.19/ зураг 6.19. Хэрэв тасалдал ашигласан тохиолдолд үйлдлийг гүйцэтгэсний дараа үр дүнг оролт гаралтын төхөөрөмж рүү дамжуулна. Дараа нь төхөөрөмжид өгөгдлийг бичиж эхлэх үед тасалдал ашиглан процессор үйлдлийг зогсоогоод дараагийн үйлдлийг гүйцэтгэж эхэлнэ. Энэ үед оролт гаралтын төхөөрөмжөөс өгөгдлийг бичсэн тухай мэдээллийг процессор уруу дамжуулна. /зураг 6.20/ 229
  • 12. зураг 6.20. Хэрэв оролт гаралтын төхөөрөмжид өгөгдлийг бичих явц дэндүү удаан байвал процессор тасалдал ашиглаж байсан ч тодорхой хугацаагаар хүлээх тохиолдол гарна. /зураг 6.21/ зураг 6.21. Тасалдал ашигласан тохиолдолд зааврын цикл нь дараах хэлбэртэй байна. /зураг 6.22/ Шаардлагатай зааврын хаягийг тогтооно. Зааврыг санах ойгоос олж авна. Тухайн зааврын дагуу хийх үйлдлийг тогтооно. Өгөгдлийн санах ой дахь хаягийг тогтооно. Өгөгдлийг санах ойгоос татан авна. Зааврын дагуу өгөгдлийг боловсруулна. Үр дүнг хадгална. Үр дүнг шинжилж үзээд тасалдлыг ашиглах эсэхийг тогтооно. Хэрэв тасалдал ашиглах шаардлагагүй бол дараагийн үйлдлийг биелүүлэхэд хэрэгтэй зааврыг олж авна. Тасалдлыг ашиглах шаардлагатай бол энэ үйлдлийг зогсооно. 230
  • 13. зураг 6.22. 6.3.1. Бааз Бааз нь хоёр болон түүнээс дээш төхөөрөмжүүдийг холбох холболтын зам. Иймээс энэхүү баазад холбогдсон төхөөрөмжүүд баазыг хамтран ашиглана. Олон төхөөрөмжүүд баазыг хамтран ашиглаж байгаа тохиолдолд ээлжлэн баазыг ашиглах нь тохиромжтой байдаг. Бааз нь хэд хэдэн зэрэгцээ шугамуудаас тогтох бөгөөд шугам болгон binary 0 болон binary 1 бүхий тоон сигналыг дамжуулна. Хэрэв бүх сигналуудыг нэг шугамаар дамжуулж байвал үүнийг сериал бааз гэнэ. Харин нэгэн зэрэг олон шугамаар зэрэг дамжуулж байвал параллель бааз гэнэ. Жишээлбэл 8 битийн параллель бааз нь нэгэн зэрэг 8 битийг (binary 0 эсвэл binary 1-ийг нэг бит гэнэ) зэрэг дамжуулдаг. Энэ баазыг 8 битийн өргөнтэй гэж нэрлэнэ. Баазын хурд 2 зүйлээр хязгаарлагдаж байдаг. Баазын өргөн буюу баазаар нэгэн зэрэг дамжуулж болох битийн тоо Баазад холбогдсон төхөөрөмжүүдийн тоо Баазыг ерөнхийд нь: control line – баазыг ашиглаж байгаа төхөөрөмж, баазаар дамжуулж байгаа мэдээлэл нь өгөгдөл үү, хаяг уу гэдгийг тодорхойлсон мэдээлэл зэргийг дамжуулах үүрэгтэй data line – өгөгдлийг дамжуулах үүрэгтэй address line – хаягийг дамжуулах үүрэгтэй гэж 3 ангилна. Уламжлалт персональ компьютерийн хувьд бааз нь дараах байдалтай байна. Өөрөөр хэлбэл процессор нь кэш ойтой локаль баазаар, кэш ой нь үндсэн санах ойтой систем баазаар холбогдоно. Харин бусад төхөөрөмжүүд нь систем баазтай chipset (extension bus interface)-ээр дамжуулан холбогдсон өргөтгөсөн баазаар (жишээ нь PCI бааз) холбогдоно. /зураг 6.23/ зураг 6.23. Харин workstation, server based компьютерууд нь энгийн персональ компьютераас арай өөр зохион байгуулалттай байна. Өөрөөр хэлбэл процессор нь кэш ойтой локаль баазаар, кэш ойн үндсэн санах ойтой систем баазаар холбогдоно. Үүгээрээ персональ компьютертай адилхан. Харин өндөр хурдтай ажиллах шаардлагатай төхөөрөмжүүд, жишээ нь видео болон график карт, сүлжээ, хатуу диск зэрэг нь өндөр хурдтай баазыг ашиглан шууд кэш ойд холбогдох бөгөөд бусад дагалдах төхөөрөмжүүд, жишээ нь модем, факс, принтер зэрэг нь өргөтгөсөн баазыг (жишээ нь PCI бааз) ашиглан өмнөх өндөр хурдтай баазтай холбогдоно. /зураг 6.24/ 231
  • 14. зураг 6.24. 6.3.2. Систем бааз Процессор, санах ой, I/O-ийг холбосон баазыг систем бааз гэж нэрлэх бөгөөд control bus, address bus, data bus гурван систем бааз байна. /зураг 6.25/ зураг 6.25. Data bus – энэ баазаар өгөгдөл дамжуулагдах бөгөөд ихэвчлэн 8, 16, 32, 64, 128, 256 битийн өргөнтэй байна. Data bus-ийн өргөн буюу нэгэн зэрэг дамжуулах боломжтой өгөгдлийн тоо компьютерийн үйлдэл гүйцэтгэх хурданд чухал үүрэгтэй. Жишээлбэл 8 битийн өргөнтэй баазаар 16 битийн урттай өгөгдлийг дамжуулахын тулд 2 дахин ачаалах шаардлага гардаг. Иймээс data bus- ийг CPU-гийн өргөн ч гэж нэрлэдэг. Өөрөөр хэлбэл 32 битийн CPU гэвэл энэ микропроцессорын data bus нь 32 битийн өргөнтэй гэж ойлгоно. Processor Data Bus Size 8088 8 80188 8 8086 16 80186 16 80286 16 80386sx 16 80386dx 32 80486 32 80586/Pentium (Pro) 64 Address bus – энэ баазаар санах ойн хаяг дамжуулагдана. Өөрөөр хэлбэл санах ойн дурын үүрэнд байрлах өгөгдөлд хандахад түүний хаяг нь энэ баазаар дамжина. Энэ баазын өргөн нь санах ойн хэмжээнээс хамааран 8-аас 48 битийн хооронд байдаг. Жишээ болгон Intel-ийн 80х86 процессорын санах ойн баазын өргөн, санах ойн хаягийн хэмжээг үзүүлэв. Processor Address Bus Size Max Addressable Memory 8088 20 1,048,576 1MB 8086 20 1,048,576 1MB 80188 20 1,048,576 1MB 80186 20 1,048,576 1MB 80286 24 16,777,216 6MB 80386sx 24 16,777,216 6MB 80386dx 32 4,294,976,296 4GB 80486 32 4,294,976,296 4GB 80586 /Pentium (Pro) 32 4,294,976,296 4GB 232
  • 15. Control bus – бусад bus-аар дамжуулагдах өгөгдлийн талаарх хяналтын мэдээлэл дамжуулагдана. Өөрөөр хэлбэл микропроцессор нь data bus-аар дамжуулан өгөгдлийг санах ойгоос унших, эсвэл санах ойд бичих үйлдлийг гүйцэтгэнэ. Тэгвэл энэ тухай мэдээлэл control bus-аар дамжигдана. Мөн системийн цаг, тасалдал зэрэг нэмэлт мэдээллүүд мөн энэ баазаар дамжуулагдана. Энэ баазын өргөн хувьсах болон тогтмол янз бүрийн зохион байгуулалттай байдаг. Мөн компьютер нь санах ойн хаяг болон оролт/гаралтын төхөөрөмж гэсэн 2 өөр хаяглалтын системтэй байдаг. Өөрөөр хэлбэл санах ойн хаяг нь санах ойн ямар үүрэнд хандахыг тогтоодог бол оролт/гаралтын хаяг нь оролт гаралтын төхөөрөмжүүдийн хаягийг тогтоодог. Санах ойн хаяг нь 8-аас 48 битийн өргөнтэй байдаг бол оролт/гаралтын төхөөрөмжийн хаяг нь 16 битийн өргөнтэй байдаг. Өөрөөр хэлбэл 65536 ялгаатай оролт/гаралтын үүртэй байна. Эдгээрийн тусламжтайгаар гар, хулгана, принтер, монитор, сканнер зэрэг оролт гаралтын төхөөрөмжүүдийг хаяглана. Оргиналь IBM PC нь эдгээрийн зөвхөн 1024-ийг нь л ашигладаг. Иймээс address bus-аар дамжуулагдаж байгаа хаяг нь санах ойн хаяг уу, оролт/гаралтын төхөөрөмжийн хаяг уу гэдгийг control bus-аар дамжуулагдах мэдээллээр тодорхойлж өгдөг. 6.3.3. PCI бааз Peripheral Component Interconnect (PCI) бааз нь өндөр bandwidth-тэй (32 ба 64 битийн 2 хувилбартай), оролт/гаралтын төхөөрөмжүүд (жишээ нь график дисплей адаптер, диск контроллер, сүлжээний контроллер г.м)-тэй өндөр хурдтай холбогдоход зориулагдсан бааз. Стандарт PCI бааз нь 64 битийг нэгэн зэрэг 33MHz хурдтайгаар (264MB/s буюу 2.112Gbps хурдтай) дамжуулах боломжтой (bandwidth нь 64). Анх 1990 онд Intel-ийнхэн Pentium процессортой зориулан энэ баазыг анх гаргажээ. Энэ үеэс эхлэн PCI баазыг энгийн персональ компьютер, сервер, workstation зэрэгт өргөн ашиглах болсон. 1993 онд дараагийн загвар болох PCI 2.0-ийг гаргаснаар үйлдвэрлэлийн процессыг автоматжуулахад (mainframe компьютерт) ашиглагдах болжээ. Жишээ болгон энгийн персональ компьютер болон серверийн бүтцийн схемийг 6.26 ба 6.27-р зурагт үзүүлэв. зураг 6.26. Энгийн персональ компьютер 233
  • 16. зураг 6.27. Сервер 6.3.4. Бусад баазууд Өнөөдөр персональ компьютерт PCI баазыг өргөн ашиглаж байна. (зураг 6.28) зураг 6.28. Үүнээс гадна ISA, AGP, USB гэсэн 3 баазыг сүүлийн үед өргөн ашиглах болсон. (зураг 6.29) зураг 6.29. ISA bus 16 битийн өргөнтэй 8MHz-ийн хурдтай бааз. Intel 810 chipset-ээс эхлэн ISA баазыг дэмжихээ байсан. (зураг 6.30) Анхны ISA баазыг PC-XT компьютерт ашиглаж байсан бөгөөд энэ нь 8 битийн өргөнтэй, 4MHz хурдтай байв. 80286-д зориулан 16 битийн хувилбарыг гаргажээ. Internal controller – LPT1 (printer, scanner зэрэг параллель төхөөрөмжүүдийг холбоход зориулагдсан), COM1, COM2 (хулгана, модем зэрэг бусад сериаль төхөөрөмжүүдийг холбоход зориулагдсан), Floppy (уян дискийн төхөөрөмжийг холбох зориулалттай), keyboard (компьютерийн гарыг холбох зориулалттай) ISA adapter – 16 битийн төхөөрөмжүүдийг холбоход зориулагдсан слотууд 234
  • 17. зураг 6.30. PCI bus Стандарт PCI bus нь 32 битийн өргөнтэй 33MHz хурдтай, PCI 2.0 хувилбар нь 64 битийн өргөнтэй 66MHz хурдтай. PCI-X хувилбар нь 64 битийн, 133MHz хурдтай боловч төдийлөн өргөн тархаагүй. EIDE controller – Ultra DMA хатуу диск, Zip диск, CD-ROM болон бусад төхөөрөмжийг холбох зориулалттай PCI adapter – график адаптер, сүлжээний карт болон бусад 32 битийн төхөөрөмжүүд, мөн SCSI controller (SCSI hard disc, SCSI scanner зэрэг SCSI төхөөрөмжүүдийг холбох зориулалттай) FireWire - өндөр хурдтай IEEE 1394 сериаль бааз, digital camera, TV зэрэг 63 хүртлэх төхөөрөмжийг хамтад нь холбох боломжтой. AGP bus 64 битийн data баазтай, 32 битийн address баазтай, 66MHz хурдтай, график картыг холбож өгөх зориулалттай. Pentium II-д зориулсан Intel 440LX chipset-д анх гарч ирсэн. (зураг 6.31) зураг 6.31. USB bus 12Mbps хурдтай нэг сериал сувгаар 127 хүртэлх төхөөрөмжийг холбох боломжтой. USB 2.0 хувилбар нь 120-240Mbps хурдтай болсон. MCA bus 80386, 80486 процессорууд нь 32 битийн процессорууд боловч 16 битийн ISA баазыг ашиглаж байжээ. Иймээс IBM PS/2 компьютерууддаа зориулан MCA баазыг зохион гаргажээ. Энэ бааз нь 16 ба 32 битийн алинд ч ажиллах чадвартай байв. EISA bus ISA баазын өргөтгөсөн хувилбар. Энэ хувилбар 16/32 битийн data баазтай, 24/32 битийн address баазтай, өмнөх ISA баазтай зохицдог. IrDA bus Эдгээрээс гадна уламжлалт параллель порттой адилхан IrDA бааз нь инфра ягаан туяаг ашиглан холбогдох боломжтой шинэ бааз. 6.4.1. Санах ой Компьютерт дараах санах ойн байгууламжууд ашиглагддаг. Регистер Кэш ой Үндсэн санах ой Зөөврийн зориулалттай диск Соронзон ба оптик диск 235
  • 18. Санах ойн хамгийн бага нэгжийг нүх гэнэ. 1 нүхэнд 1 бит мэдээлэл бичигдэнэ. 8 нүхнүүдийг нийлүүлээд 1 үүр гэнэ. 1 үүрэнд бичигдэх битийн тоог word буюу үг гэнэ. Хэрэв санах ойн үүр нь 8 битийн багтаамжтай бол санах ойн үгийн урт мөн 8 бит байна. Үүнтэй адилаар санах ойн үүр нь 16, 32 битийн багтаамжтай бол үгийн урт мөн 16, 32 битийн урттай байна. Санах ойн үндсэн үзүүлэлтүүд: Багтаамж: санах ойд агуулагдах боломжтой мэдээллийн багтаамж, байт гэсэн нэгжтэй байна. 1byte=8bit, 1kB=1024byte, 1MB=1024kB, 1Gb=B=1024MB Word буюу үг: санах ойн 1 үүрэнд багтах бит Address буюу хаяглалт: санах ой дахь нийт үүрний тоо. Хэрэв санах ойн хаяг нь N битээс тогтдог бол нийтдээ 2N ялгаатай хаягтай буюу 2N үүртэй байна. Иймээс хаяглалтын шугамын урт (address line) нь N, санах ойн хоорондоо ялгаатай хаягтай үүрний тоо 2N байна. Data line буюу дамжууллын шугам: санах ой уруу нэгэн зэрэг өгөгдөл бичих болон унших боломжтой битийн тоо. Transfer rate буюу дамжууллын хурд: өгөгдлийг бусад төхөөрөмжөөс санах ойд бичих болон санах ойгоос өгөгдлийг унших буюу дамжуулах хурд Access rate: санах ойн тодорхой үүрэнд өгөгдөл бичих унших хурд Cycle time: санах ой уруу хандах дараалсан хоёр хандалтын хоорондох хугацаа Санах ойн төрөл Технологи Хэмжээ Хурд Кэш ой Хагас дамжуулагч 128-512KB 10 ns Үндсэн санах ой Хагас дамжуулагч 4-512MB 50 ns Соронзон диск Хатуу диск GB 10 ms, 10 MBps Оптик диск CD-ROM GB 300 ms, 600 KBps Соронзон диск tape 100s MB Sec-min, 100MBpm 6.4.2. Шуурхай санах ой Шуурхай санах ойн өгөгдлийг унших, бичих боломжтой, үргэлж тэжээлээр хангагдаж байдаг тул тэжээлийг таслахад доторх өгөгдлөө алдана. Иймээс шуурхай санах ойг өгөгдлийг түр хугацаанд хадгалахад ашигладаг. Шуурхай санах ойн үндсэн 2 төрөл байна. Dynamic RAM – динамик шуурхай санах ойн нүх нь конденсаторын цэнэглэгдэх, цэнэгээ алдах процессыг ашигласан, үнэ өндөртэй, хурд ихтэй. Static RAM – статик шуурхай санах ойн нүх нь триггер болон логик элементүүдийг ашигласан, үнэ хямд, динамик үуурхай санах ойг бодвол хурд бага, овор хэмжээ бага, тэжээл бага шаардана. DRAM SRAM Хэмжээ их Үнэ өндөр Хурд их Тэжээл өндөр Хэмжээ бага Үнэ бага Хурд бага Тэжээл бага Жишээ нь: 16MB DRAM (4Mx4) /зураг 6.32/ зураг 6.32. Энэ санах ойн address line нь 22 байх ёстой боловч санах ойн үүр нь 2 хэмжээст матрикс хэлбэртэйгээр байрлах (211 x211 =222 буюу 2Kx2K=4M) учир address line нь 11, мөрийг сонгох RAS (row access strobe), баганыг сонгох CAS (column access strobe) гэсэн 2 оролттойгоор зохион байгуулагдсан. Data line нь 4 учир 4Mx4=16MB багтаамжтай. Иймээс 32 битийг зэрэг дамжуулахын тулд 16MB-ийн 8 chip-ийг ашиглана. Энэ санах ойн бүтцийн схемийг 6.33–р зурагт үзүүлэв. 236
  • 19. зураг 6.33. Иймээс DRAM-ийг үндсэн санах ойд (memory access time 60 ns), SRAM-ийг кэш ойд (memory access time 5 ns) ихэвчлэн ашиглана. Үндсэн санах ойг дараах гурван хэлбэрээр CPU-д холбож ашиглана. Үүнд: Simple – CPU, кэш, бааз, үндсэн санах ой 3 адилхан 1 үг (зураг 6.34. а) Interleaved – CPU, кэш, бааз 3-ын өргөн нь адилхан 1 үг, санах ойн N module-аас тогтно (зураг 6.34. b) Wide – CPU нь 1 үг, кэш, бааз, санах ой N үг (зураг 6.34. c) зураг 6.34. Санах ой уруу хандах хугацаа буюу санах ойгоос өгөгдөл унших/бичих хугацаа нь микропроцессорын циклийн хугацаанаас бага байдаг. (зураг 6.35) зураг 6.35. Иймээс олон модулиас тогтох санах ойн системийг ашигласнаар нэг циклийн хугацаанд санах ойн модуль бүрд ээлжлэн хандах боломжтой. (зураг 6.36) зураг 6.36. DRAM-ийн өөр нэгэн өргөн ашиглагддаг төрөл нь SDRAM (Synchronous DRAM). Энэ санах ойн data line нь 16 тул 16 битийг зэрэг дамжуулах боломжтой учраас DRAM-аас илүү хурдан болсон. Сүүлийн жилүүдэд RDRAM (RambusDRAM) өргөн ашиглагдах болсон бөгөөд энэ нь SDRAM-аас илүү хурдан (memory access time SDRAM 44 ns – RDRAM 38 ns), 800MHz-ийн интернал RAMBUS баазыг ашигладаг болсон. 237
  • 20. 6.4.3. Тогтмол санах ой Тогтмол санах ойд бичигдсэн мэдээллийг зөвхөн унших боломжтой бөгөөд түүнийг нь өөрчлөх, шинээр бичих боломжгүй. Иймээс тогтмол санах ойн тэжээл ашиглахгүй байсан ч өөр дээрх мэдээллээ хадгалсаар байх болно. Тогтмол санах ойн өөр нэг төрөл нь хэрэглэгчийн зүгээс доторх мэдээллийг нь өөрчлөх боломжтой программчлагддаг тогтмол санах ой Programmable ROM (PROM). Жишээ нь 74186 нь 512 битийн PROM (зөвхөн нэг удаа программчлагддаг санах ой). Программчлагддаг тогтмол санах ойн дараах 3 төрөл өргөн ашиглагддаг. Erasable PROM (EPROM) – бичихдээ цахилгаан импульсыг ашиглах бөгөөд арилгахдаа ультра ягаан туяаг ашиглана. Арилгах хугацаа нь ойролцоогоор 20-оод минут. 100 гаруй удаа арилгаж болно. Electrically EPROM (EEPROM) – бичих болон устгахдаа цахилгаан импульсыг ашиглана. Арилгах хугацаа нь программаар хийгдэх тул хэдхэн секунд шаардагдана. Flash – EEPROM-тай адилхан, шинээр гарч ирсэн программчлагддаг тогтмол санах ой. Жишээ нь: 8MB EPROM (1Mx8) /зураг 6.37/ 1M (220=1M) үгтэй тул address line нь 20 (A0-A19) Үг нь 8 битээс тогтох тул data line нь 8 (D0-D7) Vcc – power supply (тэжээл) Vss – ground (ерөнхий газардуулга) CE – chip enable Vpp – program voltage (программ бичилтийг хангах зорилготой) зураг 6.37. Санах ойн төрөл Категори Устгах Бичих механизм Тэжээл Random Access Memory (RAM) Read-write memory Electrically, byte level electrically volatile Read Only Memory (ROM) Read only memory Not possible - Non-volatile Programmable ROM (PROM) Read only memory Not possible electrically Non-volatile Erasable PROM (EPROM) Read mostly memory UV light, chip level electrically Non-volatile Flash memory Read mostly memory Electrically, block level electrically Non-volatile Electrically erasable PROM (EEPROM) Read mostly memory Electrically, byte level electrically Non-volatile 6.4.4. Кэш ой Микропроцессорын өгөгдлийг боловсруулах хурд нь санах ойгоос өгөгдлийг унших, бичих хурдаас олон дахин их байдаг. Өөрөөр хэлбэл санах ойд байгаа өгөгдлийг унших бичих хурд нь микропроцессорын хурдыг гүйцдэггүй. Иймээс үүнийг зохицуулах зорилгоор үндсэн санах ойг бодвол бага багтаамжтай, хурд ихтэй шуурхай санах ойг ашигладаг бөгөөд үүнийг кэш ой гэнэ. Иймээс кэш ойг микропроцессор болон үндсэн санах ойн хооронд өгөгдлийг дамжуулах явцыг хангаж өгөх зориулалттай өндөр хурдтай завсрын ой гэж ойлгож болно. (зураг 6.38) 238
  • 21. зураг 6.38. Кэш ой болон микропроцессор 2-ын хооронд дамжуулах өгөгдөл нь үг бол кэш ой болон үндсэн санах ойн хооронд дамжуулах өгөгдөл нь блок байна. Энд 1 блокыг хэд хэдэн үгнээс тогтдог гэж үзэж болно. (зураг 6.39) зураг 6.39. Микропроцессор нь санах ойгоос үгийг уншихдаа эхлээд тухайн үг кэш ойд байгаа эсэхийг шалгана. Хэрэв хэрэгтэй үг кэш ойд олдвол үндсэн санах ой уруу хандалгүй шууд кэш ой уруу хандана. Иймээс кэш ойн ажлын хурдыг ихэсгэж өгдөг сайн талтай. Хэрэв тухайн үг кэш ойд байхгүй бол уг үгийг багтаасан блокыг үндсэн санах ойгоос кэш ой уруу дамжуулна. Кэш ой нь гадаад (L2 cache) дотоод (L1 cache) гэсэн 2 янз байна. L1 кэш нь микропроцессор дотор байрладаг бол L2 кэш нь микропроцессорын гадна байрлана. Эдгээр санах ойнуудын характеристикыг хооронд харьцуулан 6.40-р зурагт үзүүлэв. зураг 6.40. Кэш ойд өгөгдлийг хэрхэн байрлуулдгийг авч үзье. Жишээ нь 16 үгтэй, үгийн урт нь 1 байт хэмжээтэй санах ойгоос блокын хэмжээ нь 4 байт байх кэш ойг хэрхэн үүсгэхийг үзье. (зураг 6.41) 239
  • 22. зураг 6.41. Хэрэв санах ойн address bus нь 32 битийн өргөнтэй, кэшийн хэмжээ 2n байт, блокын хэмжээ 2m байт бол кэшийн address нь дараах хэлбэртэй байна. (зураг 6.42) зураг 6.42. Жишээ 6.3. 16KB-ийн кэш ой 16KB-ийн кэш ойн блокын хэмжээ нь 16 байт, кэшийн хэмжээ нь 1024 блок (16 byte x 1024) (зураг 6.43) зураг 6.43. Блокын хэмжээ нь 24 байт тул offset-ийн хэмжээ нь 4 бит, кэшийн хэмжээ нь 210 байт тул index-ийн хэмжээ 10 бит, үлдсэн 18 бит нь cache tag болно. Index нь кэш дэх блокын байрлалыг, offset нь блок дотор байтын байрлалыг тус тус заана. Жишээлбэл 00000000000000 0000000001 1100 гэсэн хаягийн 0000000001 нь кэш дэх блокын байрлалыг, 1100 нь блок дахь байтын байрлалыг тус тус заана. Өөрөөр хэлбэл кэш дэх 1-р блокын 12-15-р байтыг заана. (зураг 6.44) 240
  • 23. зураг 6.44. Хэрэв 00000000000000 0000000001 0100 бол 1-р блокын 4-7-р байтыг заана. (зураг 6.45) зураг 6.45. Хэрэв 00000000000000 0000000011 0100 бол 3-р блокын 4-7-р байтыг заана. (зураг 6.46) зураг 6.46. 1-р блокын өгөгдөл өөрчлөгдөхөд cache tag шинэчлэгдэнэ. (зураг 6.47) 241
  • 24. зураг 6.47. 6.5.1. Гадаад санах ой Гадаад санах ойн төхөөрөмжүүдийг дотор нь дараах байдлаар хувааж болно. Соронзон диск (уян диск, хатуу диск) Оптик диск (CD-ROM, WORM, DVD) Соронзон type Соронзон диск нь дотроо: Уян диск (floppy disk) Хатуу диск (Winchester hard disk) Зөөврийн диск (removable hard disk) гэсэн 3 хэлбэртэй байна. Дискэн дээр өгөгдлийг бичихдээ дискийг эхлээд бэлднэ. Үүний тулд дискийг trace буюу цагиргуудад хуваана. (зураг 6.48) 1 surface-д ойролцоогоор 500-2000 trace байна. Энд surface гэдэгт дискийн нэг талыг ойлгоно. Жишээ нь ихэнх хатуу дискэн дискийн 2 талд бичих боломжтой (2 surface) бол оптик дискүүд зөвхөн 1 талд нь (1 surface) бичих боломжтой байна. Trace болгонд хадгалагдах битүүд адилхан байна. Trace-уудын хоорондох зайг inter-trace gap гэнэ. Өөрөөр хэлбэл trace-ууд нь хоорондоо gap-аар тусгаарлагдана. зураг 6.48. Trace-ийг цааш нь секторуудад хуваана. (зураг 6.49) 1 trace нь 10-100 секторт хуваагдана. Секторт тодорхой тооны блок өгөгдөл хадгалагдана. Хамгийн багадаа 1 секторт 1 блок өгөгдөл хадгалагдаж болно. Секторуудыг хооронд нь тусгаарлагчийг inter-sector gap гэнэ. 242
  • 25. зураг 6.49. Ихэнх хатуу диск нь хэд хэдэн дискүүдээс тогтно. Эдгээр дискүүдийг ерөнхийд нь platter гэж нэрлэнэ. Platter болгоны 2 талд өгөгдлийг бичих боломжтой байх бөгөөд тэдгээрийг surface гэнэ. Олон platter-аас тогтсон системийн хувьд trace-уудыг цилиндр гэдэг ойлголтоор сольж ойлгоно. Surface болгон дээр өгөгдөл бичиж, унших толгой (head) байрлах бөгөөд ихэнх тохиолдолд тэдгээр нь тусгай arm гэж нэрлэгддэг хэвтээ тэнхлэгийн дагуу чөлөөтэй хөдлөх боломжтой сууринд суурилагдсан байна. Үүний тусламжтайгаар head нь дурын trace уруу шилжих боломжтой байна. Дискүүд нь rotate гэж нэрлэгддэг босоо тэнхлэгийн дагуу чөлөөтэй эргэх боломжтой сууринд суурилагдсан байх тул head үүний тусамжтайгаар дурын секторт мөн шилжиж чадна. (зураг 6.50) зураг 6.50. Хатуу дискээс өгөгдлийг унших бичих хурд нь trace-ийг хайж олох хугацаа, секторыг хайж олох хугацаа, олсон секторт өгөгдөл бичих, унших хугацаа гэсэн хугацаануудын нийлбэрээр тодорхойлогдоно. access time = seek time + rotation time + transfer rate seek time – trace-ийг хайж олох хугацаа rotation time – секторыг хайж олох хугацаа transfer rate – дискэнд өгөгдөл бичихунших хурд Хатуу дискийг үндсэн хэсэг (primary partition) болон хэд хэдэн дэд хэсгүүдэд (extended partition) хуваах замаар нэг дискийг хэд хэдэн логик дискүүд болгон хувааж болдог. Өөрөөр хэлбэл нэг дискийг хэд хэдэн логик диск болгон ашиглаж болно. Үүнийг partition table-ийг үүсгэх замаар шийдэж өгдөг. 243
  • 26. Харин сектор доторх толгой хэсэг (ID талбар), өгөгдлийн эзлэх байр (data талбар), тусгаарласан хоосон зай (gap) зэргийг тогтоон дискэн дээр өгөгдлийг бичихэд бэлтгэж өгөхийг дискийг форматлах үйл явцаар шийдэж өгнө. Жишээ болгон Winchester хэлбэрийн хатуу дискийн нэг trace-ийг хэрхэн форматладаг болохыг авч үзье. (зураг 6.51) Trace болгон тус бүр нь 600 байт мэдээлэл агуулах боломжтой 30 сектороос тогтно. Үүний 515 байтад өгөгдлийг хадгалах зориулалттай data талбар эзэлнэ. 7 байтын урттай ID талбар нь тухайн секторын хаягийг агуулна. Энд trace, head, sector-ийн дугаарууд байрлана. Synch byte нь тухайн талбарын эхлэлийг тэмдэглэнэ. CRC нь алдааны хяналт Gap нь секторууд, ID болон data талбаруудыг хооронд тусгаарлах зориулалттай байна. зураг 6.51. 6.5.2. Оптик диск 1983 онд тоон аудио мэдээлэл агуулах зорилготой анхны компакт диск зохион бүтээгджээ. Анхны энэ CD нь бичигдсэн өгөгдлийг арилгах боломжгүй, 60 минутын хугацаанд үргэлжлэх аудио мэдээллийг агуулах багтаамжтай байв. Компакт диск нь үнэ хямдтай, нэлээд хэмжээний тоон өгөгдлийг өөр дээрээ хадгалах боломжтой тул компьютерт тоон өгөгдлийг хадгалах зорилгоор ашиглах болжээ. Сүүлийн жилүүдэд энэ оптик дискний нэлээд хэдэн хувилбарууд гарсан бөгөөд эдгээрийн талаар товч танилцуулья. CD (compact disc) – тоон аудио мэдээллийг агуулах зорилготой. Нэг тал дээр нь 60 минутын хугацаанд үргэлжлэх аудио мэдээллийг агуулах боломжтой, дээр нь бичигдсэн мэдээллийг устгах боломжгүй. CD-ROM (compact disc read only memory) – тоон мэдээллийг агуулах зорилготой. Нэг тал дээр нь 550MB өгөгдлийг багтаах боломжтой, дээр нь бичигдсэн мэдээллийг устгах боломжгүй. DVI (digital video interactive) – видео мэдээллийг агуулах зорилготой. CD болон бусад оптик дискүүдийг ашиглана. WORM (writer once read many) – 1 удаа бичих боломжтой, 200-800MB-ийн багтаамжтай оптик диск. Erasable Optical Disk – олон дахин бичих боложтой, 650MB-ийн багтаамжтай оптик диск. Audio CD болон CD-ROM – нь адилхан технологиор хийгддэг. Trace-уудын хоорондох зайн 1,6 микрон (1.6*10-6 meter), нийтдээ 20344 trace-уудаас тогтох бөгөөд нэг онцлог нь бүх trace-ууд нь нэг л спираль хэлбэртэй. Иймээс нийт trace-ийн урт ойролцоогоор 5.27 км. Компакт диск нь 1 секундэд 1.2 м урттай өгөгдлийг уншдаг гэвэл компакт дискэн дээрх нийт өгөгдлийг уншихад 4391 секунд буюу 73.2 минут шаардлагатай. (зураг 6.52) 244
  • 27. зураг 6.52. Компакт дискэн дээрх өгөгдөл цуваа байрласан блокуудаас тогтсон байна. 1 блокын хэмжээ нь 2352 байт байх бөгөөд дараах хэсгүүдээс тогтно: (зураг 6.53) Sync – блокын эхлэлийг заана Header – блокын хаяг болон байтын хэлбэрийг заана. Хэрэв mode 0 бол data талбар нь хоосон, mode 1 бол data талбарт алдааны хяналттай 2048 байт өгөгдөл, mode 2 бол data талбарт алдааны хяналтгүй 2336 байт өгөгдөл (auxiliary талбар байхгүй) болохыг тогтоож өгнө. Data – энэ талбарт өгөгдөл байрлана. Auxiliary – энэ талбарт хэрэв өгөгдөл нь mode 2 хэлбэртэй бол өгөгдөл, mode 1 хэлбэртэй бол алдааны код тус тус байрлана. зураг 6.53. 6.5.3. Виртуаль санах ой Хатуу дискийн төхөөрөмжийг үндсэн санах ойтой адилхан зорилгоор ашиглахын тулд виртуаль ой гэж нэрлэгдэг логик санах ойг ашигладаг. Виртуаль ойг үүсгэхэд дараах зүйлүүдийг тооцоолох хэрэгтэй. Хатуу диск уруу өгөгдөл бичих унших хурд үндсэн санах ой дахь өгөгдлийг унших бичих хурдаас олон дахин бага байдаг. Компьютер зааврыг биелүүлэх үед виртуаль санах ойн хаягийг ашиглана. Гэтэл энэ логик санах ойн хаяг нь үндсэн санах ойн физик хаягнаас ялгаатай байдаг. Виртуаль ойг үүсгэх paging гэдэг аргыг өргөн ашигладаг. Үүгээр: Виртуаль санах ойн ижилхэн хэмжээтэй хуудаснууд болох page-уудаас тогтно. Энэхүү page-ууд нь бүгд өөрийн гэсэн логик хаягтай байх ба логик хаяг нь page, byte offset гэсэн 2 хэсгээс тогтно. (зураг 6.54) Page-уудын логик хаягуудыг page table-д бүртгэж авсан байна. Энэ нь page-ийн логик хаягийг физик хаяг уруу хөврүүлнэ. (зураг 6.55) 245
  • 28. зураг 6.54. зураг 6.55. 6.6.1. Оролт/гаралтын модуль Оролт/гаралтын модуль нь гадны төхөөрөмжүүдийг баазтай холбох зорилготой. Компьютерт дараах үндсэн 3 модуль ашиглагддаг. (зураг 6.56) Үүнд: Санах ой – N үгнээс тогтох бөгөөд санах ойн үүрэнд өгөгдлийг бичих болон уншихын аль нь болохыг тогтоосон write/read, санах ойн үүрний хаягийг дамжуулах address, өгөгдлийг санах ойн үүрэнд бичих data гэсэн оролтын, санах ойгоос өгөгдлийг унших data гэсэн гаралтын портуудтай. Оролт/гаралтын модуль – оролт гаралтын төхөөрөмжүүд рүү хандах M портоос тогтох бөгөөд тухайн портод холбогдсон төхөөрөмжид өгөгдлийг бичих болон уншихыг тогтоох зорилготой read/write, аль порт уруу хандахыг тогтоох address, CPU болон санах ойгоос өгөгдлийг дамжуулах internal data, бусад гадны төхөөрөмжүүдээс өгөгдлийг дамжуулах external data гэсэн оролтын, CPU болон санах ой уруу өгөгдлийг бичих internal data, бусад гадны төхөөрөмжүүд рүү өгөгдлийг бичих external data, тасалдлыг дамжуулах interrupt гэсэн гаралтын портуудтай. CPU – CPU уруу зааврыг дамжуулах instruction, өгөгдлийг дамжуулах data, тасалдлыг дамжуулах interrupt гэсэн оролтын, CPU боловсруулсан өгөгдлийг регистер, санах ой, гадны төхөөрөмж рүү бичих data, эдгээрийн талаарх хяналтын мэдээллийг агуулсан control гэсэн гаралтын портуудтай. 246
  • 29. зураг 6.56. Дараах төрлийн оролт гаралтын төхөөрөмжүүдийг компьютерт ашиглана. Device Behavior Partner Data Rate (KBps) Keyboard Input Human 0.01 Mouse Input Human 0.02 Voice input Input Human 0.02 Scanner Input Human 200.00 Voice output Output Human 0.60 Line Printer Output Human 1.00 Floppy disk Storage Machine 50.00 Laser Printer Output Human 100.00 Optical Disk Storage Machine 500.00 Magnetic Disk Storage Machine 2000.00 Network-LAN I or O Machine 200.00 Network-terminal I or O Machine 0.05 Graphics Display Output Human 30,000.00 Микропроцессор нь маш өндөр хурдтайгаар үйлдлийг гүйцэтгэнэ. Харин оролт/гаралтын төхөөрөмжийн хурд харьцангуй удаан. Жишээлбэл 500MHz-ийн микропроцессор 1 секундэд 500 сая зааврыг гүйцэтгэх боломжтой. Өөрөөр хэлбэл түүний хурд нь 200000KBps. Гэтэл оролт/гаралтын төхөөрөмжийн хурд нь 0.01-30000KBps. Иймээс оролт/гаралтын төхөөрөмжийн хурд харьцангуй удаан тул микропроцессор оролт/гаралтын төхөөрөмжийг ашиглахыг хүссэн үед оролт/гаралтын төхөөрөмж бэлэн болж амжаагүй байж болно. Энэ асуудлыг шийдэх зорилгоор дараах 2 регистерийг ашигладаг. Control register – оролт/гаралтын төхөөрөмжийг ашиглахад бэлэн байна уу, үгүй юу гэдгийг тогтоосон статус битийг агуулна. Data register – өгөгдлийг түр зуур хадгална. Өөрөөр хэлбэл оролт/гаралтын төхөөрөмж рүү дамжуулсан өгөгдөл data register-д control register- ээс оролт/гаралтын төхөөрөмжийг ашиглаж болно гэсэн мэдээг иртэл хадгална. I/O module нь оролт гаралтын төхөөрөмжүүдийг баазтай холбож өгнө. (зураг 6.57) зураг 6.57. I/O module-ийн бүтцийн схемийг 6.58-р зурагт үзүүлэв. CPU-гээс I/O module уруу data, address, control гэсэн 3 шугамаар мэдээлэл дамжуулагдана. Data шугамаар өгөгдөл, address шугамаар оролт гаралтын ямар төхөөрөмжийг ашиглах хаягийг, control шугамаар read, write буюу өгөгдлийг унших, 247
  • 30. бичих аль болохыг тогтоосон мэдээлэл CPU-гээс I/O module уруу, I/O module-аас CPU рүү rеady, not ready буюу төхөөрөмжийг ашиглахад бэлэн, бэлэн бус байгаа тухай мэдээллийг тус тус дамжуулна. Оролт гаралтын төхөөрөмжүүд нь тодорхой хаягтай байна. Жишээ нь 1000 хатуу диск, 1001 уян диск г.м-ээр. зураг 6.58. Гадаад төхөөрөмжүүд нь I/O module-тай холбогдохдоо тусгай интерфейсүүдийг ашиглана. Гадаад төхөөмжийн интерфейс нь хяналт control, статус status, өгөгдөл data гэсэн 3 шугамаас тогтно. Data нь I/O module уруу өгөгдлийг илгээх болон хүлээн авахад, status нь төхөөрөмжийг тухайн үед ашиглаж болох эсэхийг шалгасан статус битийг илгээх, хүлээн авахад, control нь I/O module болон гадаад төхөөрөмжийн харьцах харьцааг тодорхойлсон мэдээллийг илгээхэд тус тус ашиглагдана. Жишээлбэл I/O module уруу өгөгдлийг илгээх буюу унших, I/O module-аас гадаад төхөөрөмж уруу өгөгдлийг бичих г.м. энэ нь тухайн төхөөрөмжийн толгой head хэсэгт байна. (зураг 6.59) Control logic нь I/O module уруу хандах ажиллагааг хянана. Transducer нь өгөгдлийг хөврүүлнэ. Buffer нь өгөгдлийг түр хадгална. Энэ нь ерөнхий тохиолдолд 8-аас 16 битийн хэмжээтэй байна. зураг 6.59. 6.6.2. Оролт/гаралтын үйлдлүүд Оролт гаралтын командууд Control – оролт гаралтын төхөөрөмж (I/O device)-ийг ашиглаж болох эсэхийг тогтооно Test – I/O module ба төхөөрөмж 2-ын хоорондох холболтыг шалгана Read - өгөгдлийг төхөөрөмж (I/O device)-ээс I/O module-ийн буферт хуулна. Дараа нь эндээс өгөгдлийг CPU-гийн регистер эсвэл санах ой уруу зөөнө 248
  • 31. Write - өгөгдлийг CPU-гийн регистер эсвэл санах ойгоос I/O module-ийн буферт хуулна. Дараа нь эндээс төхөөрөмж рүү зөөнө Программчлагдсан I/O CPU оролт гаралтын төхөөрөмжийг ашиглах тухай хүсэлтийг гаргана. Хүсэлтийг I/O module хүлээн авч тухайн төхөөрөмжийг ашиглахад бэлэн эсэхийг шалгана. Хэрэв бэлэн биш бол CPU хэсэг хугацааны дараа ахин хүсэлтийг илгээнэ. Жишээ нь read командыг хэрхэн биелүүлэхийг үзье. CPU read командыг I/O module-д гаргана. I/O module статус регистерт байрлах статус битийг шалгах замаар оролт гаралтын төхөөрөмжийг ашиглахад бэлэн эсэхийг шалгана. Хэрэв төхөөрөмжийг ашиглахад бэлэн бол өгөгдлийг I/O module-ийн data буферт хуулна. CPU дээрх үйлдэл дууссан эсэхийг шалгана. Дуусаагүй бол үүний нь статус битээс олж мэднэ. Хэрэв үйлдэл дууссан бол I/O module-аас үгийг регистерт хуулна. Дараа нь өгөгдлийг CPU-гийн регситерээс санах ойд хуулна. Хэрэв read командаар хуулах өгөгдлийн урт 1 үгээс хэтэрсэн бол дээрх үйлдлийг давтана. Жишээ нь Intel 8255A programmable peripheral interface-ийг үзье. (зураг 6.60) зураг 6.60. Энэ интерфейсийг гар, монитор зэрэг төхөөрөмжүүдийг холбоход ашиглана. (зураг 6.61) зураг 6.61. 249
  • 32. Interrupt driven I/O Программчлагдсан I/O үйлдлийг гүйцэтгэх үед I/O үйлдлийг дуустал CPU хүлээх шаардлага гардаг. Учир нь I/O үйлдэл нь CPU-гийн хурдтай харьцуулахад удаан биелэгдэнэ. I/O үйлдлийг дуустал CPU өөр үйлдлийг гүйцэтгэх боломжийг тасалдал ашиглан олгоно. CPU read/write командыг хийх хүсэлтийг гаргана. CPU программыг үргэлжлүүлэн дараагийн зааврыг гүйцэтгэнэ. I/O module/device нь I/O үйлдлийг гүйцэтгэнэ. Үйлдлийг гүйцэтгэж дууссаны дараа I/O module-аас тасалдлыг CPU уруу явуулна. CPU тасалдлыг хүлээн авч одоо гүйцэтгэж байгаа үйлдлээ зогсооно. CPU одоо биелэж байгаа программын статусыг хадгална. CPU тест хийх замаар ямар төхөөрөмж тасалдлыг илгээснийг тогтооно. CPU I/O module-аас үгийг регистер эсвэл санах ойд хуулна. CPU өмнөх үйлдлээ үргэлжлүүлэн биелүүлнэ. Жишээ нь Intel 8259A Interrupt controller-ийг үзье. Intel 8086 процессор нь тасалдлыг хүлээн авах INTA гэсэн нэг оролттой. Иймээс олон тооны гадаад төхөөрөмжийг ашиглаж байх үед тэр болгоны тасалдлыг зохицуулах зорилгоор 8259A Interrupt controller-ийг ашиглана. (зураг 6.62) зураг 6.62. DMA (direct memory access) 1 үгнээс илүү урттай өгөгдлийн хувьд CPU-гийн үйлдлийг олон дахин таслах шаардлага гардаг. Үүнийг шийдэх зорилгоор DMA module-ийг ашиглана. Энэ нь I/O module санах ой 2-ыг шууд холбож өгөх зорилготой. Өмнөх программчлагдсан I/O ба interrupt driven I/O нь өгөгдлийг санах ойгоос төхөөрөмж рүү илгээх эсвэл төхөөрөмжөөс санах ой уруу илгээх үйлдлийг CPU- гээр дамжуулан явуулдаг байсан ба хоорондох ялгаа нь энэ үйлдлийг гүйцэтгэхдээ нэг нь тасалдал ашигладаггүй, нөгөөх нь тасалдал ашигладагт л байсан. Харин DMA нь дээрх үйлдлийг CPU-гээр дамжуулахгүй шууд санах ой оролт гаралтын төхөөрөмжийн хооронд явуулдгаараа ялгаатай. DMA module-ийг ашиглах 3 үндсэн арга байдаг. Эхнийх нь DMA module-ийг CPU, санах ой, оролт гаралтын төхөөрөмжүүдтэй 1 баазад холбох. (зураг 6.63) Энэ тохиолдолд дамжуулал бүрд баазыг 2 удаа ашиглана. I/O device-аас DMA уруу, DMA-гаас санах ой уруу. Иймээс CPU 2 удаа баазыг ашиглахгүй хүлээнэ гэсэн үг. 250
  • 33. зураг 6.63. Дараагийнх нь DMA module-ийг 6.64-р зурагт үзүүлсний дагуу холбох. Ингэснээр дамжуулал бүрд баазыг нэг л удаа ашиглана. Иймээс дамжуулал хийх үед CPU баазыг ашиглахгүй нэг удаа зогсоно. зураг 6.64. Гуравдахь нь DMA module болон оролт гаралтын төхөөрөмжүүдийг хооронд нь холбосон тусгай оролт гаралтын бааз (PCI, AGP, ISA, USB г.м)-ыг ашигласан тохиолдол. (зураг 6.65) зураг 6.65. 6.7.1. Микропроцессорын хөгжлийн товч түүхээс зураг 6.66. 1969 онд Japanese calculator company, Busicomp компаниудын захиалгын дагуу Intel Corporation тооны машинд зориулсан хэд хэдэн chip-ийг хийжээ. Intel-ийн инженер Mercian (Ted) Hoff ерөнхий нэг chip-ийн тусламжтайгаар программчлагддаг, олон үйлдлийг гүйцэтгэх чадвартай байгууламжийг хийх санааг анх гаргаснаар удалгүй 1971 оны 11-р сарын 15-нд Intel Corporation анхны Intel 4004 микропроцессорыг (микропроцессорыг цаашид зүгээр л процессор гэж нэрлэе) хийсэн. /зураг 6.66/ Энэ нь анхны үйлдэл гүйцэтгэх чадвартай бүх элементүүдийг нэг chip дээр байрлуулсан байгууламж байлаа. 4004 процессор нь 4 битийн 2 тоог хооронд нь нэмэх, үржүүлэх, хуваах чадвартай байв. Хэдийгээр энэ процессор 4 битийн хувьд үйлдэл хийх боломжтой ч заавар нь 8 битийн урттай байв. Өөрөөр хэлбэл энэ процессорын data bus нь 4 бит, address bus нь 8 битийн өргөнтэй байв. Программ болон өгөгдөл нь тус тусдаа хадгалагддаг бөгөөд 1KB өгөгдөл, 4KB-ийн хэмжээтэй программыг хадгалах чадвартай. 46 заавартай, 2300 транзистор ашиглаж байв. Clock speed буюу хурд нь 108kHz (CPU-гийн үйлдэл хийх 1 цикл нь 8 зэрэг үйлдэл гүйцэтгэх циклээс тогтох ба энэ үйлдэл гүйцэтгэх хурдыг clock speed гэх бөгөөд цаашид зүгээр л хурд гэж нэрлэе. 108kHz гэдэг нь 1 секундын хугацаанд 108k цикл хийх боломжтой гэсэн үг) 1972 онд Intel 4004-ийг сайжруулсан Intel 4040 процессорыг хийжээ. Энэ нь өмнөх хувилбараасаа 14 заавраар илүү, программ хадгалах санах ойн хэмжээ 8KB болтлоо нэмэгдсэн байлаа. зураг 6.67. Мөн оны 4 сард 8 битийн процессор болох Intel 8008 процессорыг үйлдвэрлэв. Энэ нь нэгэн зэрэг 8 битийн 2 тоон дээр үйлдэл хийх чадвартай байлаа. Энэ процессорын data bus нь 8 бит, address bus нь 14 бит, хурд нь 200kHz, 3450 транзистор ашигласан, санах ойн багтаамж нь 16KB болтлоо ихэссэн байв. /зураг 6.67/ зураг 6.68. 1974 оны 4-р сард Intel 8080 процессор гарсан. Энэ нь 8008 процессортой төсөөтэй 8 битийн процессор боловч түүнээс арай хурдан, зааврын тоо нь их, санах ойн багтаамж их г.м давуу талуудтай байв. Мөн 16 битийн address bus-тай, 8 битийн data bus- 251
  • 34. зураг 6.69. тай, 6000 транзистор ашигласан, санах ойн багтаамж нь 64KB болтлоо ихэссэн байв. Энэ процессор нь 3 хувилбартай бөгөөд 1974 онд гарсан 8080 хувилбар нь 2MHz хурдтай, 1976 онд гарсан дараагийн хоёр хувилбарууд болох 8080А-2 нь 2.67MHz хурдтай, 8080А-1 нь 3.125MHz хурдтай байв. /зураг 6.68/ Энэ процессор дээр үндэслэгдэн анхны микрокомпьютер хийгдсэн. Энэ нь 1975 оны 1-р сард бүтээгдсэн MITS Altair 8800 байв. /зураг 6.69/ зураг 6.70. Энэ үеэс хэсэг инженерүүд 8080 процессорыг сайжруулах зорилгоор Intel-ээс салан гарч Zilog Corporation-ийг байгуулан 8080-ийг сайжруулсан 8 битийн Z-80 процессорыг үйлдвэрлэжээ. Z-80-ын хурд 2.5MHz, Z80-H (хожим Z80-C гэж нэрлэгдэх болсон) нь 8MHz, сүүлд гарсан CMOS хувилбарынх нь хурд 10MHz байв. Radio Shack-ынхан Z-80 процессорыг ашиглан TRS-80 микрокомпьютерийг хийжээ. 1984 онд Hitachi 1984-ийг үйлдвэрлэсний дараа 1987 онд Zilog, Hitachi нар хамтран Z-80-ийн бусад төхөөрөмжүүдтэй зохицон ажиллахад зориулагдсан Z-180 ба HD64180Z процессоруудыг үйлдвэрлэжээ. Эдгээр нь Z-181, Z-182 гэсэн хувилбаруудтай. 1987 оны 7-р сард 16 битийн Z-280 процессорыг бүтээсэн бөгөөд 1994 онд 16/32 битийн Z-380 хувилбаруудыг гаргажээ. /зураг 6.70/ 1974 онд Motorola-гийнхан Motorola 68000 процессорыг үйлдвэрлэжээ. Энэ нь Intel 8086 болон MOSTech 6502 процессоруудын адил 8 битийн процессор байсан бөгөөд 8 битийн data bus, 16 битийн address bus-тай, хурд нь 1MHz байв. Энэ үеэс эхлэн процессорын хөгжил нь IBM (Intel 80х86) ба Apple Macintosh (Motorola 680х0) гэсэн 2 үндсэн чиглэлээр хөгжих болсон зураг 6.71. 1978 онд анхны 16 битийн Intel 8086 процессор үйлдвэрлэгдсэн. Энэ процессор 20 битийн address bus-тай, 16 битийн data bus-тай, 29000 транзистор ашигласан, санах ойн багтаамж нь 1МB болтлоо ихэссэн байв. Энэ процессор нь 3 хувилбартай бөгөөд 8086 хувилбар нь 5MHz хурдтай, 8086-2 нь 8MHz хурдтай, 8086-1 нь 10MHz хурдтай байв. /зураг 6.71/ 1979 онд 8086-г сайжруулсан 8088 процессор гарсан. Энэ нь анхны математик үйлдлийг гүйцэтгэхэд зориулагдсан math процессор Floating Point Unit (FPU) 8087-г ашигласан байв. Intel- ийнхэн энэ процессорын патентыг Advanced Micro Devices, Harris, Siemens зэрэг компаниудад худалдснаар эдгээр компаниуд янз бүрийн хувилбаруудыг гаргажээ. Жишээлбэл Siemens-ийн гаргасан хувилбар нь эдгээр хувилбаруудаас 2 дахин их хурдтай байв. Мөн 1981 онд гарсан NEC V20 ба V30 хувилбарууд нь 8086 ба 8088-аас 30% хурдан байв. Мөн худалдаанд зориулан 1980 онд 8 ба 16 битийн хувилбаруудтай 80186 процессороо гаргасан. Худалдан авагчид түүний CHMOS ба HMOS chip ашигласан хувилбаруудаас сонгох боломжтой. 1990 оноос Intel-ийнхэн Enhanced 186 Family уруу шилжсэн. Ингэснээр system controller, interrupt controller, DMA controller, timing circuitry right нь бүгд CPU-тэй хамт нэг схем /core/ дээр хийгдсэн. Гэвч энэ процессорыг PC-д ерөөсөө ашиглаагүй. зураг 6.72. 1982 оны 2-р сард санах ойн багтаамжийг 1MB байсныг нь 16MB хүртэл ихэсгэсэн шинэ хувилбарыг гаргасан бөгөөд түүнийгээ Intel 80286 гэж нэрлэсэн. Энэ процессор 24 битийн address bus-тай, 16 битийн data bus- тай, 134000 транзистор ашигласан, санах ойн багтаамж нь 16МB болтлоо ихэссэн, FPU 80287-г ашигласан байв. /зураг 6.72/ Энэ процессор нь 3 хувилбартай бөгөөд 80286 хувилбар нь 8MHz хурдтай, 80286-2 нь 10MHz хурдтай, 80286-1 нь 12MHz хурдтай байв. Мөн энэ процессор нь физик санах ойгоос гадна виртуаль санах ойг ашиглах боломжтой болсон. Мөн түүнчлэн нэгэн зэрэг олон үйлдлийг зэрэг хийх боломжтой болсон нь тухайн үед гараад байсан DOS үйлдлийн системд ашиглагддаггүй байсан боловч ирээдүйн үйлдлийн систем болох Windows үйлдлийн системийг хийх боломжийг олгосон. Энэ процессорыг ашиглан 1984 онд IBM-ийнхэн Personal Computer AT компьютерийг хийжээ. Энэ нь IBM S/360 ба Motorola 68030 процессортой адилхан. Motorola 68030 процессорыг Мacintosh II компьютерт ашигласан бөгөөд энэ нь 32 битийн процессор байсан. Түүний 32 битийн data bus, 32 битийн address bus-тай, хурд нь 30MHz байв. 252