Журнал LinuxFormat - перейти на главную

LXF162:CPU своими руками

Материал из Linuxformat
Перейти к: навигация, поиск


CPU свои­ми ру­ка­ми

Часть вто­рая

Еще два ком­по­нен­та элек­трон­но­го серд­ца ва­ше­го CPU: Джо­на­тан Ро­бертс под­во­дит вас на шаг бли­же к ра­бо­че­му про­цес­со­ру.

В LXF158 мы по­ка­за­ли вам, как по­стро­ить соб­ст­вен­ный ком­пь­ю­тер из ба­зо­вых элек­трон­ных бло­ков. По су­ти, мы из­го­то­ви­ли дво­ич­ный сум­ма­тор. Мы за­кон­чи­ли ста­тью, ска­зав, что соз­дан­ное на­ми — это еще да­ле­ко не на­стоя­щий ком­пь­ю­тер, и вам нуж­ны еще несколь­ко ком­понен­тов, пре­ж­де чем ва­ша ма­ши­на смо­жет пре­тен­до­вать на звание ком­пь­ю­те­ра.

В этой ста­тье мы рас­смот­рим дальней­шие ша­ги и пред­ста­вим вам еще несколь­ко ком­понен­тов, про­де­мон­ст­ри­ро­вав, как рас­ши­рить воз­мож­но­сти ва­ше­го сум­ма­то­ра до вы­полнения дру­гих дей­ст­вий (AND [И], XOR [ИСКЛ.ИЛИ] и NOT [ИЛИ]) и соз­дать це­пи па­мя­ти для хранения вво­да и вы­во­да.

Пе­ред чтением этой ста­тьи вам сто­ит про­честь пре­ды­ду­щую часть, что­бы осве­жить па­мять, по­сколь­ку мы ис­хо­дим из то­го, что вы с ней оз­на­ком­ле­ны. Ес­ли у вас нет эк­зем­п­ля­ра LXF158, вы смо­же­те най­ти PDF этой ста­тьи на дис­ке это­го ме­ся­ца.

Де­ко­дер

Пер­вый ком­понент, ко­то­рый мы рас­смот­рим – это де­ко­дер, или, точнее, линей­ный де­ко­дер. Он очень прост, но очень удо­бен в ра­бо­те и сам по се­бе, и де­ко­де­ры так­же ис­поль­зу­ют­ся в муль­ти­п­лек­со­рах – что ис­клю­чи­тель­но важ­но для осталь­ной час­ти на­шей ста­тьи.

LXF162.feat cpu.figure6 opt.png

По су­ти, все де­ко­де­ры по­зво­ля­ют сде­лать вы­бор из мно­же­ст­ва вы­хо­дов, ис­поль­зуя толь­ко по­ло­ви­ну вхо­дов. Бо­лее кон­крет­но – при един­ст­вен­ном вхо­де де­ко­дер по­зво­лит вам вы­би­рать ме­ж­ду дву­мя вы­хо­да­ми, два вхо­да обес­пе­чат вам вы­бор из че­ты­рех вы­хо­дов, и т. д. В слу­чае де­ко­де­ров мы го­во­рим не о вхо­де и вы­хо­де, а об ад­рес­ной линии и линии пе­ре­да­чи дан­ных. Таб­ли­ца ис­тин­но­сти для про­сто­го линей­но­го де­ко­де­ра 1-в-2 раз­ме­ще­на ниже, а схе­ма со­единений при­ве­де­на на рис. 1.

Как ви­ди­те, все очень про­сто. Ад­рес­ная линия раз­двое­на, и вход NOT раз­ме­щен на од­ном от­ветв­лении это­го раз­двоения. Та­ким об­ра­зом, толь­ко од­на из этих линий пе­ре­да­чи дан­ных мо­жет за один раз пе­ре­дать 1.

Муль­ти­п­лек­со­ры

Муль­ти­п­лек­сор по­до­бен де­ко­де­ру, но спо­со­бен на боль­шее. Вме­сто вы­бо­ра ме­ж­ду дву­мя линия­ми пе­ре­да­чи дан­ных, он ис­поль­зу­ет ад­рес­ную линию для вы­бо­ра ме­ж­ду дву­мя вхо­да­ми, и вы­бран­ная ве­ли­чи­на (0 или 1) бу­дет пе­ре­на­прав­ле­на на един­ст­вен­ную линию пе­ре­да­чи дан­ных.

Его таб­ли­ца ис­тин­но­сти приведена ниже, а его схе­му со­единений вы так­же мо­же­те уви­деть на рис. 1. На этой схе­ме вы ви­ди­те, что муль­ти­п­лек­сор – это про­сто рас­ши­рен­ный де­ко­дер.

LXF162.feat cpu.figure7.png
(thumbnail)
Рис. 1. На этой схе­ме вы ви­ди­те ли­ней­ный де­ко­дер 1-в-2 сле­ва и муль­ти­п­лек­сор 2-в-1 спра­ва. Ус­лов­ное обо­зна­че­ние ни­же — это встро­ен­ное пред­став­ле­ние KTechlab, где X0 и X1 — эк­ви­ва­лен­ты I0 и I1.
Персональные инструменты
купить
подписаться
Яндекс.Метрика