nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 17 Apr 2024 23:56



Reply to topic  [ 28 posts ]  Go to page Previous  1, 2
Где проходит граница между RISC и CISC? 
Author Message
Retired

Joined: 27 Mar 2013 04:55
Posts: 587
Location: 62.192.229.16
Reply with quote
Post 
HardWareMan wrote:
Т.е. если команд мало и они "одноклеточные" то это RISC. И наоборот.


По моему немного не так. У ARM-а команды:

mcr 15, 0, r0, cr2, cr0, {0}
add r0, r1, r1, lsl #3
ldr r0, [r1, r2, lsl #2]

голову сломаешь, как будто ты не программу пишешь, а трогаешь руками внутренности процессора.

Одноклеточные команды у X86

mov ax, bx
mul cx
lodsw
stosd
push 12


30 Apr 2013 07:25
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
mul далеко не одноклеточная.


30 Apr 2013 09:32
Profile
Retired

Joined: 27 Mar 2013 04:55
Posts: 587
Location: 62.192.229.16
Reply with quote
Post 
Я слово "одноклеточная" понял как "без аргументов".


30 Apr 2013 10:05
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
vinxru wrote:
голову сломаешь, как будто ты не программу пишешь, а трогаешь руками внутренности процессора.

Вот это ты в самую точку попал! Но зато это так упрощает схемотехнику! :o

И я в принципе говорю о самодельном процессоре, хотя Шаос несколько неверно
обозначил тему как RISC vs CISC.

Вот я делал прикидку работы с АЛУ в 4-битном варианте...

Image

Здесь я прикидывал систему команд, как более привычную нам и похожую на 8080.

То есть, для выполнения операции, скажем, сложения это работает так, (в мнемониках 8080):

Code:
MVI A,55H
MVI B,33H; - один из регистров РОН
ADD B


Так вот, чтобы реализовать все эти ADD, ADC, и т.д. приходится заюзать много кодов
операции из 16 возможных и вводить префиксы...

И я вот думаю - а если сделать чисто по RISC - принципам?

На входы S0-S3 прицепить ещё один регистр - регистр операции - S.

Тогда все возможные операции АЛУ выполняются аппаратно типовой операцией записи в регистр.

И рассмотренный выше код будет выглядеть как:

Code:
MVI A,55H
MVI B,33H; - один из регистров РОН
MVI S,KOP; - код операции сложения

_________________
iLavr


30 Apr 2013 11:57
Profile
Retired

Joined: 27 Mar 2013 04:55
Posts: 587
Location: 62.192.229.16
Reply with quote
Post 
Я делал такой код команды:

2 бита. Аргумент 1 (регистр A, регистр ADDR, регистр DATA, константа)
2 бита. Аргумент 2 (регистр A, регистр ADDR, регистр DATA, регистр IP)
2 бита. Код АЛУ (сложение, NAND, OR, ROR)
2 бита. Результат (регистр A, регистр ADDR, регистр DATA, регистр IP)
2 бита. Условие (без условий, С, NC, Z)
Остальные биты - константа.

Причем, из этих команд можно отобрать нужные и записать в ПЗУ. Тогда код команды сократится.

И команда выполняется за два такта. Первый такт собственно сама команда, второй такт вычисляется IP = IP + 1.

Только если в первом такте был изменен IP, второй такт не выполняется

А если условие не соответствует флагам, не выполняется первый такт.


30 Apr 2013 12:07
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
У меня обращение в память не вырисовывается за одинаковое число тактов со всеми командами... :(

Для этого нужен один здоровый 12-битный регистр...
А с ним приходиться общаться через 4-битную внутреннюю магистраль.

Поэтому я и предложил Шаосу архитектуру 16х16 или 32х32.
Когда размер регистра и размер шины адреса совпадают, то RISC архитектуру
сделать довольно просто.


PS. Это, кстати, и есть, на мой взгляд, причина того, что 4-битники все делают в основном на 256 байт памяти.

_________________
iLavr


Last edited by Lavr on 30 Apr 2013 13:43, edited 1 time in total.



30 Apr 2013 12:26
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22530
Location: Silicon Valley
Reply with quote
Post 
Lavr wrote:
И я в принципе говорю о самодельном процессоре, хотя Шаос несколько неверно
обозначил тему как RISC vs CISC.


Переименовал...

_________________
:dj: https://mastodon.social/@Shaos


30 Apr 2013 12:29
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
В оригинале фраза, на которую я ссылаюсь, звучала вот в таком контексте:
Quote:
Главными требованиями архитектуры RISC являются:
1. Любая операция должна выполняться за один такт.
2. Система команд должна содержать минимальное количество наиболее часто используемых команд одинаковой длины.
3. Операции обработки данных реализуются только в формате регистр-регистр. Обмен между регистрами и памятью выполняется только командами загрузки-записи.
В дальнейшем эти требования были несколько смягчены. Выполнение команды за один такт стало трактоваться, как загрузка конвейера команд в темпе "команда за такт". Набор команд современных RISC-процессоров возрос.
Незыблемым для архитектуры RISC остается только требование: обработка данных ведется только командами в формате регистр-регистр.
Среди других особенностей RISC архитектур следует отметить:
- наличие достаточно большого файла РОН–ов (32 и более регистров),
- для обработки используются трехадресные регистровые команды,
- команды регистр/память используются только для загрузки (Ld) РОН из памяти и сохранения (ST) содержимого РОН в памяти,
- как следствие упрощения команд, использование аппаратной, а не микропрограммной логики выполнения команд.
...
Позднее было отмечено, что наиболее значимая характеристика RISC в разделении инструкций для обработки данных и обращения к памяти — обращение к памяти идёт только через инструкции load и store, а все прочие инструкции ограничены внутренними регистрами. Это упростило архитектуру процессоров: позволило инструкциям иметь фиксированную длину, упростило конвейеры и изолировало логику, имеющую дело с задержками при доступе к памяти, только в двух инструкциях. В результате RISC-архитектуры стали называть также архитектурами load/store.

_________________
iLavr


30 Apr 2013 16:17
Profile
Retired

Joined: 27 Mar 2013 04:55
Posts: 587
Location: 62.192.229.16
Reply with quote
Post 
Сейчас у X86 процессоров (их 64-битных потомков) то же куча регистров

RAX, RBX, RCX, RDX, RBP, RSI, RDI, RSP, R8 - R15

и они почти равнозначны (почти POH). Кстати они 64 бита, т.е. их объем в байтах такой же как у ARM

И трехадресные команды то же проскакивают.

IMUL EAX, EBX, 10 ; EAX = EBX*10
LEA EAX, [EBX+ECX*8] ; EAX = EBX+ECX*8


30 Apr 2013 18:05
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
vinxru wrote:
Я слово "одноклеточная" понял как "без аргументов".

под "одноклеточностью" я подразумевал их элементарность. Т.е. пересылка из регистр в регистр - одноклеточная. Сложение 2 регистров, разрядность которых совпадает с разрядностью АЛУ - тоже. А вот относительный переход, который требует вычисления адреса уже нет. Ну а у умножения там вообще целая вереница микрокода.


30 Apr 2013 21:43
Profile
Retired

Joined: 27 Mar 2013 04:55
Posts: 587
Location: 62.192.229.16
Reply with quote
Post 
HardWareMan wrote:
Сложение 2 регистров, разрядность которых совпадает с разрядностью АЛУ - тоже. А вот относительный переход, который требует вычисления адреса уже нет.


Относительный переход, это же сложение IP с константой. Если IP совпадает с разрядностью АЛУ, то тоже должно быть просто.


01 May 2013 03:14
Profile
Retired

Joined: 27 Mar 2013 04:55
Posts: 587
Location: 62.192.229.16
Reply with quote
Post 
Я тут подумал, что Pentium 4 1.4 ГГц с конвеером длиной 20 стадий, выполняет одиночную команду со скоростью 70 Мгц. То есть время от загрузки из памяти до выполнения.


01 May 2013 04:10
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22530
Location: Silicon Valley
Reply with quote
Post 
vinxru wrote:
Я тут подумал, что Pentium 4 1.4 ГГц с конвеером длиной 20 стадий, выполняет одиночную команду со скоростью 70 Мгц. То есть время от загрузки из памяти до выполнения.


это почему?

_________________
:dj: https://mastodon.social/@Shaos


01 May 2013 08:17
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 28 posts ]  Go to page Previous  1, 2

Who is online

Users browsing this forum: No registered users and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.