Жедел жадтың ұйымдастырылуы

Процессор адрес шинасы арқылы катынайтын компьютердің нақтылы (іс жүзіндегі) жады жедел жад (немесе жедел сақтау құрылғысы- ЖСҚ) деп аталады. Жедел жад микросхема түрінде жасалған және программалар мен мәліметтерді уақытша сақтауға арналған. Компьютердің жедел жады байт деп аталатын, 8 разрядтан тұратын ұяшықтарға бөлінеді. Байттың разрядтары оңнан солға қарай 0-ден 7-ге дейін нөмірленеді. Әр разрядқа 0 немесе 1 шамалары жазылады, оларды бит деп атау келісілген.

байт                
 

Байттар 0-ден бастап нөмірленеді, байттың реттік нөмірі оның адресі (жадтағы орны) деп аталады. Адрестердің мәндер аралығы процессордың адрестік шинаның разрядтылығына байланысты. Ол аралық: І8086 үшін 0 ден 220-1 дейін (1 Mбайт); I486 және Pentium үшін 0 ден 232-1 дейін (4 Гбайт); Pentium/II/III/IV процессорлары үшін 0 ден 236-1 дейін (64 байт).

Жадтың ең кіші адрестелетін бөлігі - байт. Бірақ компьютерде оданда басқа ірірек адрестелетін ұяшықтар қолданылады: сөз, екіеселі сөз, төртеселі сөз.

Сөз (word) - қатар жатқан екі байт. Сөздің ұзындығы 16 разряд(0-15). Сөздің адресі бірінші байттың адресі болып саналады.

  А А+1
А сөзі    
  15 8 7 0

Екіеселі сөз (double word) - қатар жатқан төрт байт. Екі еселі сөздің ұзындығы 32 разряд(0-31). Екі еселі сөздің адресі оның байтарының бірінші байтының адресімен анықталады.

  А А+1 А+2 А+3
А екіеселі сөзі        
  31 24 23 16 15 8 7 0

Төртеселі сөз (quadruple word) - қатар жатқан сегіз байт. Төртеселі сөздің ұзындығы 64 разряд (0-63). Төртеселі сөздің адресі оның байтарының бірінші байтының адресімен анықталады.

  А+6 А+7
А төртеселі сөзі    
  15-8 7-0

Жадты басқару механизімі толығымен аппараттық деңгейде. Бұл дегеніміз адрестік шинадағы жад адресін программада қалыптастыруға болмайды, процессордың құрылымдық ерекшеліктерін ескеру керек. Мұндай маханизм:

· машиналық командада адресті ықшамды сақтауды;

· адрестеу маханизмінің ыңғайлылығын;

· көпесептік жүйеде адрестік аймақты қорғауды;

· виртуальды жадты қолдауды

қамтамасыз етеді.

Микропроцессорда аппараттық деңгейде жедел жадты қолданудың сегметтік және стандартты модельдерін жүзеге асырылады.

Сегметтік модельде программада үзіліссіз жад аймақтарына (сегметтерге) бөлінеді, ал программаның өзі осы сегметтердегі мәліметтерге ғана қатынайды.

Стандартты модельде жедел жад тұрақты өлшемді (4Кбайт және одан жоғары) бөліктер жиынтығы түрінде қарастырылады. Оның негізгі қолданысы виртуальды жадтың ұйымдастырылуымен байланысты, бұл операциятық жүйенің программаның жұмысына нақтылы жадтан артық орын беруге мүмкіндік береді. Intel486 және Pentium микропроцессорлары үшін виртуальды жадтың мүмкін аумағы 4 Тбайтқа жете алады.

Мәліметтерді кескіндеудің негізгі форматтары

ДКкөптегенбелгілі бір форматағы әр түрлі мәліметтермен амалдар жасайды. Ол форматтар мәліметтің сақталатын ұяшығының өлшемі және оның ұсынылу тәсілімен анықталады. Қолданылатын мәліметтердің форматтары ДК-ның моделі мен оларды өңдеуге арналған командалар жиынтығына байланысты. Алғашқыда базалық (Intel 8088/8086 процессорының) мәліметтер мен командалар жиынтығын қарастырамыз. Бұл базалық жиынтық 16 разрядты программалауды қамтамасыз ететін Win16 платформасын құрайды. Мәліметтерді ұйымдастырудың базалық принциптерін ұғынып алып, ДК-ның i386, i486, i586 және олармен бірегей модельдерінің Win32-дегі жұмысын қамтамасыз ететін мәліметтер мен командалар жиынтығынның келешектегі кеңейтілулерін меңгеру жеңілге түседі.

Символдар

Символдар, басқа да мәліметтер тәрізді, компьютер жадында биттар тізбегі түрінде сақталады. Әр символға, сол символдың коды деп аталатын екілік оң бүтін сан сәйкес келеді. Символдар мен оларлың кодтарының арасындағы сәйкестік кодтау жүйесі деп аталады. Компьютерде, әдетте, ASCII (American Standart Code for Information Interchange-)кодтау жүйесі қолданылады. Бұл негізі 7 биттік екілік код. Онда алфавиттік, симолдық және арнайы белгілер бейнеленеді. Символдар басқарушы (0..31, 127 кодтары ) және дисплей экранында немесе баспаға шығарылғанда қағаз бетінде көрінетін(32.. 126 кодтары) болып екіге бөлінеді. Кесте Қ1.1, Кесте Қ1.2

Символдарды кескіндеу үшін бір байт жеткілікті. Бір байтта сегіз бит бар, сондықтан барлығы 256 символды кодтауға болады. Кодтық кестенің жартысынан астамы іске асырылмай қалады. Сондықтан 128... 255 кодтары арнайы ұлттық символдар үшін бөлінеді. Мысалы, DOS операциялық жүйесінде кирилица үшін көп уақыт бойы үш әртүрлі кодтық кестелер қолданылған. Кейін альтернативті бірыңғай стандартты кодтау қабылданды. Кесте Қ1.3

Кейін Windows шеңберінде жаңа символарды кодтау кестесі - стандарты Windows ANSI қабылданды. Бұл кодтау кестесі де бір байтты кесте. Алғашқы 0..127 символдары ASCII кодтарына, ал қалғандары ұлттық алфавитке бөлінген. Кесте Қ1.4

 

Бүтін сандар

Жалпы жағдайда бүтін сандар үшін, олардың өлшемдеріне байланысты, бірнеше кез келген қатар жатқан байттар тізбегін бөлуге болады. Негізінде дербес компьютерде көбінде байт, сөз және еселі сөз түріндегі мәліметтермен жұмыс жасалады: байт типті мәліметке 1 байт; сөз типті мәліметке 2 байт; еселі сөз типті мәліметке 4 байт орын беріледі.

Компьютерде таңбасыз және таңбалы сандардың арасы ажыратылады. Себебі бір өлшемді ұяшықтарда таңбасыз сандардың өзгеру аралығы таңбалы сандардың өзгеру аралығынан үлкен болады.

Таңбасыз бүтін сандар. Таңбасыз бүтін сандар - оң сандар немесе нөл. Олар компьютердің жадының 8, 16 немесе 32 битын алады, 0 – ші бит төменгі бит, ал 7, 15 немесе 31 – ші бит сәйкесінше жоғарғы бит болып есептеледі. Таңбасыз сандар үшін таңбаға байт бөлінбейді, яғни барлық разрядтар санның цифрларын жазуға қолданылады. Мысалы, сөз өлшемді таңбасыз санның кескінделу форматы:

Санның ақпараттық аймағы {0.1}
жоғарғы биттар төменгі

15-мысал. Айталық 80000 ондық саны берілсін. Бұл санға қанша бит керек және оның машиналық көрінісі қандай болады?

Алдымен бұл санды екілік санау жүйесіне аудару керек.

80000d ® 1 0011 1000 1000 0000b ® 13880h

Алынған нәтижеден көретініміз бұл санды сақтау үшін 17 екілік разряд керек. С++ алгоритімдік тілі терминінде бұл unsigned int форматы, ал Pascal тілінде word фоматы тип болады.

Осы санды 32 разрядқа да орналастыруға болады:

80000d ® 0000 0000 0000 0001 0011 1000 1000 0000b ® 9C40h

Алғашқы нөлдерге назар аударыңыз!

Таңбалы бүтін сандар. Таңбалы бүтін сандар оң да, теріс те бола алады. Нөлді қоса алғанда. Және олар мүмкін мәндер диапазоны бойынша таңбасыз мәліметтерден екі есе кіші (оң мәндер үшін):

Биттардың барлығы таңбасыз сандардағыдай цифрларға берілмейді. Жоғарғы бит әрқашан таңба үшін бөлінеді. Бұл S (Signum) биты деп аталады:

S=0 оң сандар үшін; S=1 теріс сандар үшін.

S Санның цифрлар аймағы {0.1}
Таңба биттер

Сондықтан санның цифрлары үшін бір бит кем орын бөлінеді. Егер екілік санды бір екілік разрядқа оңға жылжытатын болсақ алғашқы сан екі есе кемиді, сол себепті мүмкін мәндер диапазоны өзгереді.

Таңбалы бүтін сандар қосымша кодта кескінделеді: оң сандар танбасыз сандар тәрізді, ал теріс Х саны 2k - |x| танбасыз санымен бейнеленеді,

 

 

 

мұндағы k- санға берілетін ұяшықтағы разрядтар саны. Мысалы, X=+87, k=8 болсын, онда формула бойынша:

+87d = 57h = 01010111b,

ал Х=-87 болса,

-87d=(28-87)=256-87=169d=A9h=10101001b

Егер k=16 болса,

-87d=(216-87)=65536-87=65449d=FFA9h=1111111110101001b

 

Командалар жүйесі.

Командалар жүйесі компьютердің архитектурасының маңызды бөлігі болып табылады. Оның көмегімен тікелей процессордың жұмысы басқарылады. Процессордың әр жаңа моделі пайда болуымен, жаңа модельдің архитектурасының жаңалықтарын жүзеге асыратындай, командалар саны артып отырады.

Машиналық командалар жүйесімен танысу барысында екі мәселені ескеру керек - процессор деңгейінде оның машиналық командалардың жиынтығын және осы командалардың кескінделу ережелерін, яғни машиналық командалардың форматын. Компьютердің процессорына тек бір тіл ғана түсінікті - машиналық командалар тілі. Машиналық командалар белгілі бір ережелерге сүйене отырып құрастырылған нөлдер мен бірлердің тізбегі. Процессорға қандайда бір амалды орындату үшін оған машиналық командалар түрінде қажетті нұсқау беріледі. Осындай машиналық командалар тізбегі машиналық программа құрайды. Алғашқы компьютерлерде программалау міне осы жолмен жүрген. Екілік кодта программалаудың қиыншылығы айтпасада түсінікті. Программа жазу процесін жеңілдету үшін маниналық тілдің баламасы ретінде ассамблер тілі ойластырылған, ал компьютердің архитектурасына микропрограммалық басқару блогы енгізілген. Әр машиналық команда үшін микропрограммалық басқару блогы да жеке микропрограмма болады. Олар арқылы командамен берілген әрекеттер процессордың қажетті блогына жіберілетін сигналдарға аударылады. Адам программаны өзіне түсінікті символдық тілде жазады, арнайы программа – оны машина тіліне аударады (трансляциялайды), ал микропрограммалық басқару блогы машиналық команданы процессор үшін қажетті түрге келтіреді, процессор оны орындайды.

Сонымен, машиналық командалар мен ассемблер командаларының арасында бірден-бір өзара сәйкестілік болады. Ассемблер командаларынан машиналық командалардың құрылу ережелерін білу тек ассемблер тілін оқудың қажетті шарттарының бірі емес, сонымен қатар компьютердің жалпы жұмыс жасау логикасын түсінуге мүмкіндік береді.