nedoPC.org

Electronics hobbyists community established in 2002
Last visit was: 15 Jun 2024 16:25
It is currently 15 Jun 2024 16:25



 [ 28 posts ]  Go to page 1, 2  Next
Где проходит граница между RISC и CISC? 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Lavr wrote:
6502 - он более RISC-оватый как-бы!

Кто знает, насколько в принципе для RISC-процессоров справедлив вот такого типа постулат:
"...все основные операции выполняются преимущественно между регистрами,
загрузка значения из памяти и запись результата в память - операции, выполняемые
через привелегированный регистр...
"?

Там, где я это читал, давалась общая характеристика RISC-процессоров, и отмечалось,
что эти положения со временем стали более размыты.

То есть, если подойти буквально - то в память и из памяти грузим через аккумулятор.
Регистры загружаются из аккумулятора и операции - только между аккумулятором и регистром.

Несколько неприятное ограничение, но, на мой взгляд, весьма упрощает схемотехнику.

_________________
iLavr


29 Apr 2013 06:47
Retired

Joined: 27 Mar 2013 04:55
Posts: 587
Location: 62.192.229.16
Post 
Упрощает схемотехнику и хоронит производительность.

В 6502 кстати грузить из памяти можно в любой регистр, что положительно выделяет его перед 8080

LDA, LDX, LDY


29 Apr 2013 09:38
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Post 
vinxru wrote:
Упрощает схемотехнику и хоронит производительность.
В 6502 кстати грузить из памяти можно в любой регистр, что положительно выделяет его перед 8080

LDA, LDX, LDY

Не соглашусь на повод производительности... если бы это было так однозначно -
давно бы сделали из этого практический вывод.

Что касается 6502, то регистров ОН у него всего-то раз, два и... три... :lol: :o
Что бы их не грузить?

А когда здоровенный файл РОН, что характерно для RISC-архитектуры, то
призадумаешься...

_________________
iLavr


29 Apr 2013 09:50
Retired

Joined: 27 Mar 2013 04:55
Posts: 587
Location: 62.192.229.16
Post 
У ARM-а можно данные грузить в любой регистр
ldr рег, смещение

У AVR то же
ld рег, смещение

У x86 то же
mov рег, [смещение]

У PDP 11 то же
mov рег, смещение

А у упомянутого 8080
lda смещение
mov b, a
или
lxi h, смещение
mov b, m


29 Apr 2013 10:11
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Post 
vinxru wrote:
А у упомянутого 8080
lda смещение
mov b, a
или
lxi h, смещение
mov b, m

Ну вот это и реализуется весьма просто аппаратно... об чем я и веду речь.

А упомянутый 8080 делают CISC-ом, собственно, инструкции, работающие
с псевдо-регистром М, как считается.

_________________
iLavr


29 Apr 2013 10:31
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Post 
vinxru wrote:
У ARM-а можно данные грузить в любой регистр
ldr рег, смещение

У AVR то же
ld рег, смещение

У AVR только старшие 16, а младшие 16 нельзя.


29 Apr 2013 19:30
Retired

Joined: 27 Mar 2013 04:55
Posts: 587
Location: 62.192.229.16
Post 
16 регистров для приема значений, это не 1. Это больше чем в x86, больше чем в 6502 :) На такое ограничение можно не обращать внимания.


29 Apr 2013 23:44
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Post 
Обсуждение немного в сторону уехало, а я поинтересовался изначально:
Кто знает, насколько в принципе для RISC-процессоров справедлив вот такого типа постулат:
"...все основные операции выполняются преимущественно между регистрами,
загрузка значения из памяти и запись результата в память - операции, выполняемые
через привелегированный регистр...
"?

_________________
iLavr


30 Apr 2013 01:31
Retired

Joined: 27 Mar 2013 04:55
Posts: 587
Location: 62.192.229.16
Post 
Я и сказал, что это не совсем так.

"...все основные операции выполняются преимущественно между регистрами, загрузка значения из памяти и запись результата в память - операции, выполняемые через привелегированный регистр..."

Это справедливо только для очень древних процессоров, типа 8080, которые RISC-ом не являются, так как содержат сложные команды на основе микрокода (PUSH, POP, LHLD, SHLD, XTHL...)

Правильнее:

- арифметические операции выполняются преимущественно между регистрами

- загрузка значения из памяти и запись результата в память командами не выполняющими арифметических действий.

- а в остальном максимальная ортогональность команд.


30 Apr 2013 03:49
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Post 
А как же "выполнение команд за нормированное минимальное время (1 такт например)" и "оверлап выполнения команд (сохранение результата команды N-1, выполнение команды N и загрузка команды N+1)"?


30 Apr 2013 05:11
Retired

Joined: 27 Mar 2013 04:55
Posts: 587
Location: 62.192.229.16
Post 
ИМХО
- Конвеер сейчас есть во всех процессорах. Даже 286, 1801ВМ2 уже имеют конвеер в 2 команды.
- Любой процессор стремится выполнить команду за минимум тактов и тайминги известны.
- И наоборот, команды умножения в ARM-е работают значительно больше такта. И я подозреваю, что это микрокод.


30 Apr 2013 05:25
Retired

Joined: 27 Mar 2013 04:55
Posts: 587
Location: 62.192.229.16
Post 
ИМХО основное отличие лагерей CISC и RISC в идеологии.

RISC. Мы делаем минимум команд, все команды примерно одной длины, работают с одинаковыми регистрами, выполняют простейшие действия. Что бы процессор получился проще, что бы потреблял меньше энергии, что бы проще было жить программистам.

Но на выходе получаем не самую большую производительность и разряженный машинный код.

С этим борются, добавляя чуть чуть микрокода, еще одну (более компактную) систему команд.

CISC. Машинный код - надо максимально сжать. Для этого часто используемые последовательности команд объединить в одну команду. Ага, нужно считать CRC32, пожалуйста, вот вам команда crc32. Сочетания регистров, которые не используются (или есть альтернатива), выкинуть. Надо оставить минимальное кол-во способов сделать что-то. Например lodsb, losw, mul. Команды условного перехода в 99% случаев ограничиваются 128 байтами, значит ограничить смещение. Часто используемые команды должны иметь более короткие опкоды.

В общем CISC - это заархивирвоанный RISC. :) Часто встречающиеся команды в словарь. (Тем более, что внутри современных X86 сидит RISC)

И в итоге мы получаем тысячи команд разной длины, очень толстый микрокод, очень сложную железную оптимизацию.

Всё это работает быстро, но ждет кучу энергии.

В советском процессоре 1801ВМ1 микрокод (этот самый разархиватор) занимал почти половину площади кристалла. Но там перед инженерами стояла лишь одна цель, выполнять программы PDP11. Или расстрел :)) Их можно понять.


30 Apr 2013 06:02
Devil

Joined: 26 May 2003 06:57
Posts: 873
Post 
vinxru wrote:
В общем CISC - это заархивирвоанный RISC. :)
...
В советском процессоре 1801ВМ1 микрокод (этот самый разархиватор) занимал почти половину площади кристалла.

А мне кажется, что 1801ВМ1 гораздо ближе к RISC, чем к CISC:
- практически все регистры универсальные, даже стек
- методы адресации одинаковые для всех регистров
- система кодирования команд похожа на другие RISC-процессоры

Единственное, что не похоже: каждая команда выполняется за фиг-знает-какое количество тактов. От 8 до 50 и выше!
Видимо, сказывается отсутствие конвеера. Но даже ВМ2 и ВМ3, где он есть, не за один такт команды выполняют. Да и невозможно это с мультиплексируемой шиной адрес/данные.

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


30 Apr 2013 06:23 WWW
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Post 
А как же название? RISC - Restricted (Reduced) Instruction Set Computer (компьютер с сокращённым набором команд). CISC - Complex Instruction Set Computer (компьютер с комплексным набором команд). Т.е. если команд мало и они "одноклеточные" то это RISC. И наоборот.

Забавно, но есть еще MISC и URISC. И про последний тут уже обсуждалось: процессор с одной командой (частный случай URISC - OISC).


30 Apr 2013 06:25
Devil

Joined: 26 May 2003 06:57
Posts: 873
Post 
Ну а четыре десятка команд (если не учитывать модификации для работы с байтом) - это Reduced? Сколько команд имеют современные RISC-процесоры?

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


30 Apr 2013 07:04 WWW
 [ 28 posts ]  Go to page 1, 2  Next

Who is online

Users browsing this forum: Claude AI [Bot] and 7 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

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