Процесор с ръцете си

Процесор с ръцете си

Тъй като аз мога да си спомня, винаги е искал да направи процесор. И накрая, аз вчера го е направил. Не е голям: 8-битов, RISC машини, текущата работна честота - 4 KHz, но тя работи. Досега моделиране програма логически вериги, но ние всички знаем: "днес - по модела на утрешния ден - на практика!".







Под границата на няколко анимации, кратко представяне на двоичен логиката за най-малките, кратък разказ за главния процесор чип на логика и, всъщност, веригата.

Binary система (за тези, които не знаят) - това е една такава система за номериране, в които не числа по-големи от един. Това определение на много объркващо, докато те не забравяйте, че десетични цифри на не повече от девет.

Двоична система се използва в компютрите, защото от нея лесно се кодират стрес: има напрежение - означава единица; без стрес - означава нула. В допълнение, "нула" и "една" може лесно да се разбира като "фалшива" и "истинска". Освен това, повечето от устройствата в двоична система, обикновено се отнася до цифрите като масив от "истина" и "лъжа", т.е. той работи с числа като логическите стойности. За най-малките, както и тези, които не знаят, аз ще ви кажа, и ще ви покаже как да работят най-простите елементи на двоична логика.

Точка "буфер"


Представете си, че сте седнали в стаята си и приятеля си - в кухнята. Можете викат му "приятел, кажи ми в коридора светва?". Един приятел отговаря: "Да, огън!" Или "Не, това не изгаря." Твоят приятел - буфер между източника на сигнал (една крушка в коридора) и приемник (вие). Освен това, вашият приятел - не просто някакъв обикновен буфер, и буферът се контролира. Той щеше да бъде един обикновен буфер, ако постоянно вика: ". Крушка не свети" "лампа светлина" или

Елемент "не е» - НЕ


Сега си представете, че вашият приятел - шегаджия, който винаги казва истината. И ако светлината в коридора свети, тя ще ви каже: "Не, в коридора много, много тъмно", а ако не свети - за "Да, в светлината на коридора е на." Ако имате приятел по въпроса, така че той въплъщение на елемента: "Не."

Елемент "или» - ИЛИ


За да се обясни същността на елемент "или" една крушка и един друг, за съжаление, не е достатъчно. Имаме нужда от две крушки. Така че, имате две крушки в коридора - един етаж лампа, например, и полилей. Можете вика: "Приятелю, кажи поне една крушка свети в коридора?" И на приятелите ти отговори: "Да" или "Не". Очевидно е, че за да се отговори с "не" всички светлини трябва да бъдат изключени.

Елемент "А» - И


Същият апартамент, ти, приятелю в кухнята, лампа етаж и полилей в коридора. Във вашия въпрос: "В коридора, две крушки горят?" Можете да получите "Да" или "Не". Поздравления, вече си приятел - това е елемент на "I".

Елемент ", за да се изключи или» - XOR


За да повтори експеримента за "или" елемент, но преформулира въпроса ви към другия: "Приятелю, кажи ми в коридора, само една лампа свети?". Честно приятел, за да отговори на този въпрос "Да" само ако в коридора е наистина само една крушка изгаряния.

Chetvertsummator


Chetvertsummatorom елемент, наречен "изключително или". Защо? Нека си го кажем.
Да се ​​изготви таблица за добавяне на две числа в двоична система:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10

Сега пиша елемент маса истината "изключителен или". За това, нека крушка за 1, погасени - за 0, а другите отговори с "Да" / "Не" като 1 и 0, съответно.
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0

Много подобни, не е тя? Таблица за допълнение и истина маса ", за да се изключи или" напълно съвпадат, с изключение на един-единствен случай. И този случай се нарича "преливане".

полу-ехидна

На преливник, в резултат на добавяне не се поставя в същия брой цифри, колко са били поставени условия. Условия - две едноцифрени числа (една значителна цифра, нали?), А количеството - е двуцифрен (две цифри). Двете цифри на една лампа ( "светлина" / "Off") няма да бъдат прехвърлени. Имаме нужда от две крушки. Необходимо е - да го направи!

В допълнение към XOR, с ехидна, ние се нуждаем един елемент от "А" (И).






0 XOR 0 = 0 0 0 = 0 и
0 XOR 1 = 1 1 = 0 и 0
1 XOR 0 = 1 1 = 0 и 0
1 XOR 1 = 0 1 1 = 1 И

Нашата половин ехидна vundervaflya работи. Тя може да се счита за най-простият специализиран процесор, който добавя две числа. Half-разширител се нарича половин ехидна, защото тя не успее да се вземе предвид прехвърлянето (в резултат на друга ехидна), което означава, че не може да сложи три едноцифрени двоично число. В тази връзка, няколко единични малко половин разширител може да се направи един мулти-малко.

Няма да се впускам в подробности за работата и мулти-битови пълни суматора, просто се надявам, че ще получите основната идея.

мултиплексор

демултиплексорна


За да се разбере функционирането на тезгяха отново, ще се нуждаем от вашата приятелка. Обади му се излезе от кухнята (Надявам се, че не е много там е скучно, и най-важното, не яде цялата си храна), и ги помолете да направите това: Остави го да си спомня номера 0. Всеки път, когато го докосне, той трябва да се добави един на този номер, който си спомня, да каже резултата и го запомни. Когато резултатът е (да речем) 3, той трябва да крещи "Абракадабра!" И да отговори на следващото докосване, че сега той си спомня броя 0. Малко по-трудно? Виж:

Когато докоснете другия. Един приятел казва: "Едно".
Когато докоснете другия. Един приятел казва: "Двама".
Когато докоснете другия. Един приятел казва: "Три". Всеки вика "Habrahabr! ". Критичен удар! Вие сте временно парализирана и не може да се движи.
Когато докоснете другия. Един приятел казва: "Нула".

Е, и така нататък. Много просто, нали?
Разбира се, разбирате, че вашият приятел в момента - това брояч. Допирът другият може да се счита за "времето сигнал" или просто като продължава сигнал. Крик "Абракадабра" показва, че се съхранява стойността на брояча - максимумът, както и че на следващия брояча на времето на сигнала се свежда до нула. Има две разлики между двоичен брояч от приятеля си. На първо място, вярно двоичен брояч извежда съхранена стойност в двоичен вид. На второ място, той винаги е точно това, което му кажа, и никога не се спуска към глупави шеги, които могат да нарушат цялата система процесор.


Нека да продължим да се присмиват на вашия нещастен (може би въображаем) приятел. Да предположим сега, че тя си спомня цифрата нула. Когато докоснете лявата си ръка, той трябва да си спомня номера нула, и когато правото - номер едно. На въпроса: "Колко помниш ли?" Човек винаги трябва да отговори на броя на която се съхранява - нула или един.
Най-простият клетката памет е RS-тригер ( "флоп" означава "преминаване"). RS-тригер може да съхранява един бит информация ( "нула" / "един") и има два входа. Влезте Set / инсталация (точно като лявата ръка е твой приятел), пише в "едно" предизвика Reset вход / Reset (съответно дясна ръка) - "нула".


Малко по-трудно да се намери регистъра. Приятелят ти се превръща в един регистър, когато го питам нещо да се помни, а след това да каже: "Хей, напомня ми, че ти казах да си спомня?", А всеки реагира правилно.

А регистър може да се съхранява обикновено малко повече от един бит. Той определено има разделителна способност, въвеждане на данни, изходните данни и въвеждане на запис. С пускането на данни, винаги можете да прочетете това, което е написано в този регистър. Въвеждане на данни, можете да изпратите данните, които искате да пишете на този регистър. Можете да изпратите данни, докато докато не се отегчават. В случай, че нищо няма да бъде написана, за да до входа на обезценката не позволяват да подаде едно, че е "логично единица".

смяна регистър


Били ли сте някога стоеше в линия? Разбира се, че са. Така че можете да си представите какво е да се даде в регистъра на смяна. Хората идват и си стоят на опашката. Първият човек в съответствие влиза в офиса на важна клечка. Всеки, който е на второ място в линия, е първият, и този, който е на трето - сега на втория, и така нататък. Място - това е хитър смяна регистър, от която "данни" (добре, това е, хора) може да се измъкне по работа, предварително предупреди съседите си в опашката. В този регистър за смяна, разбира се, "данни" от опашката може да не работят.

Така че, регистъра за смяна да има вход за данни (чрез данните попадат в "завой") и изход на данни (от които можете да прочетете много първи запис в "опашката"). има вход "преместващ регистър" Дори и в регистъра на смяна. След като на входа идва от "логическа единица", цялата линия се измества.

Има една важна разлика между спукването и регистър за смяна. Ако смяна регистър побира четири записа (например, четири байта) от първия запис в опашката достига изхода от регистъра след само четири входни сигнали "за смяна на регистър".

оперативна памет

BitBitJump

Детайлно описание BitBitJump и асемблер за този език е достъпно на сайта на разработчика. За описание на алгоритъма на процесор е достатъчно да се знае следното:

За съжаление, безкраен алгоритъм, и следователно няма да достигне печалба.

Всъщност схемата

Веригата е построена спонтанно, така че извършването на шоуто в нея страх, ужас и бъркотия. Независимо от това, тя работи, и работи добре. За включване на процесора, е необходимо:

1. Въведете програмата в RAM
2. Натиснете ключа
3. Настройте измервателния уред до 4 (това може да бъде направено, и хардуера, но тази схема би било още по-тромава)
4. Включване на часовника генератор

Както можете да видите, един регистър използва, една смяна регистър, един RAM чип, два двоични броячи, един Демултиплексер (подадени за контролната група), две мултиплексори и логика малко чист.

Можете да изтеглите схемата в циркулационната формат Logisim програма. и да играе.

Каква е следващата стъпка?

На първо място, това е възможно да се увеличи капацитетът на процесора - подмяна на компонентите на 8-битови към 16-битови.
На второ място, това е възможно да се направи RAM на процесора, и добавете проста схема, която ще спре процесор, RAM памет, както и промените отново включва процесор. Подобна схема ще служи като обикновен вход-изход контролер. След това можете да направите на базата на този процесор калкулатор, контролер, или дори някои забавни безполезен.
На трето място, това е възможно, за да достигне тази схема в жлеза. Какво съм аз ще направя. Веднага след като аз ще - и аз със сигурност ще кажа.

Благодаря на всички ви за вниманието!

Burch / logisim /
4. Домашна URISC (ORISC) процесор за Logisim - narod.ru/disk/31367690001/oo.circ.html