Мазмұны:
- 1 -қадам: Жол бойындағы зерттеулер
- 2 -қадам: кездесетін қиындықтар
- 3 -қадам: Жетістіктер мен рефлексия
Бейне: Бит тақтасындағы 8 биттік компьютерге шолу: 3 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Бұл жобаның мақсаты менің компьютерлік архитектура, аппараттық құралдар дизайны және құрастыру деңгейіндегі тілдер туралы жақсы түсінік қалыптастыру болды. Университеттің кіші инженері болғандықтан, мен жақында электроника курстарын, мені құрастыру тілі мен аппараттық архитектураны таныстыратын зертханаларды бітірдім. Осы тақырыптарға кіріспе алғаннан кейін мен барлық үш курста ұсақ -түйек туралы түсінігімді арттырғым келді және жобада жұмыс істегеннен гөрі үйренудің жақсы әдісі қандай?
Менің бастапқы ниетім-бұл 8 биттік компьютерді Ben Eater-дің youtube каналында ұсынылған дәріс видеоларын қолдана отырып, толық жинау болды, олар дизайн процесін мен қарастырған материалдар мен әлі ашылмаған аспектілердің берік қоспасына айналдырады. үйрену. Менде комбинаторлық дизайн мен электрониканың негізгі логикасы туралы қарапайым түсінік болғанын ескере отырып, мен компьютердің бөліктерін жобалауға шолу жасағаннан кейін құрастыруға тырысу арқылы өзімді сынап көргім келді, бірақ құрылыс нұсқаулығын қарамай. Жоба барысында менің мақсатым жаңа нәрсені құрудан гөрі түсінігімді үйрену мен жақсарту болды, сондықтан мен жобаның әр кезеңінде компоненттер архитектурасы мен әркім үшін қолданылатын негізгі конвенциялар туралы онлайн мақалалар мен форумдардан аздап оқыдым. олардың.
1 -қадам: Жол бойындағы зерттеулер
Бұл жоба мен күткеннен де көп нәрсені оқуға мүмкіндік берді. Менің әр компонентке негізгі көзқарастарымның бірі - онлайн форумнан немесе мақаладан шолуды оқу, Eater видеоларынан дәрістерді қарау және оны құрудан, тестілеуден бұрын мен оны бөлшектеп тастауды қажет етпестен бұрын өзімнің жеке бөлімді жобалауға тырысу болды. Eater арнасынан көбірек нұсқаулық. Бұған мысал ретінде мен компьютердің ALU компонентін құрғанымды айттым. Дизайн бейнелерін қарап отырып, мен функционалдығы жоғары және чип компоненттері туралы мақалаларды оқыдым, олар нұсқаулардың түрлерін ауыстыруға және кірістерді 2 -ші комплементке ауыстыруға мүмкіндік береді. Алайда, бұл жеңілдетілген чиптерді сатып алмас бұрын, мен AL E модуліндегі функционалдылықты жоғарылату үшін қосқыштар мен XOR логикалық қақпаларының араласуы арқылы Ben Eater өз бейнелерінде айтқан дизайн тәсілін қарастырдым. Бұл маған дискретті логиканың қолданылуын және оның компьютерлік дизайнға қолданылуын бағалауға және компоненттер құрудың әр түрлі тәсілдерін білуге мүмкіндік берді. Нан тақтасындағы төменгі деңгейдегі чиптерді біріктіру арқылы мен ALU ішінде қолданылатын кейбір негізгі архитектуралық ерекшеліктерді білдім, бұл ДК -дегі орындау компоненті туралы менің түсінігімді арттырды.
Мен білген тағы бір негізгі компонент - буфер деп аталатын трансиверлерді қолдану. Жобаға тереңірек кіріспес бұрын, мен басқару сигналдарын қолдана отырып, әр түрлі компоненттерді белсендіріп, сөндіремін деп ойладым, бірақ вон-нейман стиліндегі архитектураның дұрыс жұмыс істеуі үшін буферлерді қолдану керектігін мақалалардан тез таптым. ДК -дегі әр түрлі модульдер арасында деректерді тасымалдау үшін компьютер ортақ шинаны пайдаланатындықтан, циклдердің синхрондауы сағатпен анықталды. Алайда, автобустағы деректерге кедергі келтірместен дүкендер мен жүктемелердің пайда болуына мүмкіндік бере отырып, мен трансиверлердің деректердің автобусқа уақытында өтуіне мүмкіндік беретін қосу сигналын қажет ететін қақпа рөлін атқаратыны маңызды екенін анықтадым. Оқу қабілетін түсіну қиын емес еді, өйткені сымдар әрқашан автобустағы мәндерді ұстайды, бірақ дұрыс мәнді қолдану регистрлерге жаңа мәнді ұстауға мүмкіндік береді.
Осы жоба бойынша жүргізілген зерттеулерден соңғы қорытынды - ұқсас фишкалар арасындағы ерекшеліктерді түсіну. Көбінесе мен бірдей ID мәндері бар чиптерді таптым, бірақ LS және HC сияқты әр түрлі дескриптор әріптері. Менің білгім келгені - бұл тек жапсырмалар ғана емес, сонымен қатар чиптер туралы уақыт пен қуат сипаттамалары. Бақытымызға орай, менің компьютерім төмен деңгейлі, жоғары төзімділік компоненттерін қолданғандықтан, мен көптеген сипаттамаларға сәйкес келу туралы алаңдамаудың қажеті жоқ еді, бірақ жоғары деңгейдегі дизайнда сағат жылдамдығы мен электр қуатын тарту сияқты нәрселер электронды жүйенің сәттілігі мен сәтсіздігі үшін маңызды екенін білдім. дизайн
2 -қадам: кездесетін қиындықтар
Жобаға тез еніп, мен процестерді синхрондау уақыты мен жадының негізгі архитектурасы сияқты қарапайым компоненттерді жобалай алдым, бірақ ауыр семестрмен бірге бөлшектерге тапсырыс беру қажет болды, бұл мені жобаға қосымша уақыт бөлуді қиындатты. аяқтау кестесі. Бөлшектердің келуін бір апта күтудің қажеті болмаған соң, мен бұл жобаны аяқтау керек деп ойлаған барлық бөліктерге тапсырыс беру арқылы одан әрі кідірістерді болдырмадым.. Отладтаудың кейбір негізгі тәсілдерін білгеннен кейін, мен кейбір жиналыстарды елемей бастадым, бұл менің қателіктерімді түсіну үшін қайта оралу мен бейнелерді қайта қарауды қажет етті, бұл әдетте тақтаның көп бөлігін алып тастауға әкелді. Бұл төте жол болмады. Мен кез -келген электронды құрылғыны жасаудағы жетістіктеріңізді тексерудің маңыздылығын білдім. Жол бойында әр тақтаны жөндеу арқылы мен оларды сенімді түрде біріктіруге көштім, содан кейін аралас тақталарды жөндеу әлдеқайда жеңіл болды.
3 -қадам: Жетістіктер мен рефлексия
Жалпы алғанда, мен қазіргі уақытта сағатты, кодты және бағдарламалық есептегішті, ALU бірлігін, rs rt және rd регистрлерін және жедел жадты аяқтадым. Бұл жобаны аяқтау үшін автобустар мен перифериялық қондырғыларды аяқтаудан басқа, мен компьютерлік архитектура туралы көп нәрсені білдім, мен оны компьютерлік архитектура курсынан жоғары курста таңдауға жалғастырамын деп үміттенемін.
M5 маған жобада жұмыс істеу үшін барлық қажетті құралдарды ұсынды, ал компоненттер бөлшектердің қабырғаларында өте жақсы орналастырылған, сондықтан мен тапсырыс беру керек болатын бөлшектерді және нені қолдануға болатынын ерте білдім. Егер басқа студент бұл жобаны қабылдауы керек болса, мен айта аламын, егер сіз компьютерде болып жатқанның бәрін түсінуге тырыссаңыз, бұл жоба көп уақытты алады. ҚИЫН емес, бірақ оның сәтті жұмыс істеуін қаласаңыз, оған күтім қажет. Егер сіз өзіңіздің жеке тәсіліңізді жобалауды жоспарламасаңыз, уақытында артта қалмау үшін сізге қажет бөліктерді түсіну үшін Ben Eater -дің youtube каналындағы бейне ойнату тізімінен өтуді ұсынамын. Мен бөлшектердің көп бөлігін сатып алғандықтан, мен оны өзіммен бірге аяқтауды жоспарлап отырмын, бірақ басқа оқушыға оны аяқтауға мүмкіндік беру үшін оны тапсыру жақсы болар еді, бұл қалған бөліктердің дизайнына жеңіл әсер етуді білдіреді., бірақ мен басқа сабақтарда жұмыс істеуге мәжбүр болған ассамблея тіліне көп көңіл бөлдім
Ұсынылған:
Elegoo Super Started Kit Uno R3 шолу: 4 қадам
Elegoo Super Started Kit Uno R3 шолуы: Бірнеше күн бұрын Elegoo маған тестілеу үшін осы Super Starter жиынтығын жіберді. Сонымен, оның ішінде не бар екенін көрейік. Бұл ықшам корпусты ашқанда біз көптеген заттарды көре аламыз. Мұқабада барлық компоненттері бар индекс бар. Ішінде бізде алғыс хаттар бар
Arduino Nano-MMA8452Q 3 осьтік 12 биттік/8 биттік цифрлық акселерометр оқулығы: 4 қадам
Arduino Nano-MMA8452Q 3 осьтік 12 биттік/8 биттік сандық акселерометр оқулығы: MMA8452Q-бұл ақылды, қуаты аз, үш осьті, сыйымдылығы бар, микромахинді акселерометр, рұқсаты 12 бит. Қолданбалы бағдарламаланатын икемді опциялар акселерометрге ендірілген функциялардың көмегімен қамтамасыз етілген, екі үзіліспен реттеледі
Raspberry Pi MMA8452Q 3 осьтік 12 биттік/8 биттік цифрлық акселерометр Python оқулығы: 4 қадам
Raspberry Pi MMA8452Q 3-осьтік 12-биттік/8-биттік цифрлық акселерометр Python оқулығы: MMA8452Q-ақылды, қуаты аз, үш осьті, сыйымдылығы, микромашиналы акселерометр, рұқсаты 12 бит. Қолданбалы бағдарламаланатын икемді опциялар акселерометрге ендірілген функциялардың көмегімен қамтамасыз етілген, екі үзіліспен реттеледі
Raspberry Pi MMA8452Q 3 осьтік 12 биттік/8 биттік сандық акселерометр Java оқулығы: 4 қадам
Raspberry Pi MMA8452Q 3-осьтік 12-биттік/8-биттік сандық акселерометр Java оқулығы: MMA8452Q-ақылды, қуаты аз, үш осьті, сыйымдылығы бар, микромахинді акселерометр, ажыратымдылығы 12 бит. Қолданбалы бағдарламаланатын икемді опциялар акселерометрге ендірілген функциялардың көмегімен қамтамасыз етілген, екі үзіліспен реттеледі
DIY MusiLED, Windows және Linux бір рет басу арқылы синхронды музыкалық жарықдиодты шамдар (32 биттік және 64 биттік). Қайта құру оңай, пайдалану оңай, портқа оңай: 3 қадам
DIY MusiLED, Windows және Linux бір рет басу арқылы синхронды музыкалық жарықдиодты шамдар (32 биттік және 64 биттік). Қайта құру, пайдалану оңай, портқа оңай. Бұл жоба Arduino тақтасына 18 жарықдиодты (6 қызыл + 6 көк + 6 сары) қосуға және компьютердің дыбыстық картасының нақты уақыттағы сигналдарын талдауға және оларды таратуға көмектеседі. жарық диодтары оларды соққы әсеріне қарай жарықтандырады (тұзақ, биік қалпақ, соққы)