Перейти к содержанию
    

производительность 8051 котроллеров

Ошибочное мнение что при одинековом быстродействии RISC архитектура дает большую производительность чем CISC архитектура (как у 51), все с точностью до наоборот. Просто RISC архитектура позволяет получить большее быстродействие легче и с меньшими аппаратными затратами.

 

Ну во первых, C51 это чистый RICS, можно даже сказать эталон RISC процессора.

 

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

 

В третьих быстродействие и производительность это синонимы. Если Вы имели в виду сравнение производительности на одинаковых тактовых частотах, то здесь взависимости от задач в равной степени может победить и RISC и CISC. Если в системе часто происходят прерывания, то победит RISC, а CISC в свою очередь может попасть в ступор и тратить все свое время лишь на переключение между задачами. Мало прерываний - однозначно победит CISC.

 

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

 

Мое мнение таково:

По сабжу - C51 даже Cygnal на своих 100Mhz с 50MIPS по производительности один из аутсайдеров, и на задачах 32х битной целочисленной арифметики отстанет от 8-ми разрядной AVRки @16Mhz с актуальными ~10MIPS раз эдак в 10.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ошибочное мнение что при одинековом быстродействии RISC архитектура дает большую производительность чем CISC архитектура (как у 51), все с точностью до наоборот. Просто RISC архитектура позволяет получить большее быстродействие легче и с меньшими аппаратными затратами.

 

Ну во первых, C51 это чистый RICS, можно даже сказать эталон RISC процессора.

 

Ну уж батенька, что-то вы не то тут сказанули, или описались.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну уж батенька, что-то вы не то тут сказанули, или описались.

Я писал эмулятор оного и архитектуру его знаю прекрасно. Но, конечно же, если Вы меня сможете переубедить ссылкой на документ от Intel'а где сказано, что C51 это CISC, тогда я заберу свои слова

обратно.

 

Приводится пиковая производительность различных 8-разрядных микроконтроллеров:

С8051F120-123 up to 100MIPS

C8051F124-127 50

Other SiLabs 25

ATmega128 16

M77C32 10

DS80C310 8,25

MCS1210 8,25

T89C51RB2 6,67

MIPSы разные бывают. К примеру 16 битное сложение: A(R1:R0) = A(R1:R0)+B(R2:R3)

 

C51:

XCH A, R0

ADD A, R2

XCH A, R0

XCH A, R1

ADDC A, R3

XCH A, R1

 

AVR:

ADD R0, R2

ADC R1, R3

 

Простейшее сложение и то первый тратит 6 инструкций, второй всего две. При работе с 32-х битными данными разница еще более существенная. И выливаются те 100MIPS в реальных (полезных) 5MIPS.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну уж батенька, что-то вы не то тут сказанули, или описались.

Я писал эмулятор оного и архитектуру его знаю прекрасно.

 

Ну какой же это RISС. Длина команд может быть 1 2 или 3 байта.

Работа напрямую с внутренней памятью, когда для RISC характерна load-store

архитектура и работа с данными через регистровый файл.

Тот же AVR для достижения своей RISС-овости имеет 16-битную длину команды,

чтобы эффективно паковать в нее инструкции.

 

Вот выдержка с сайта интела по отличительным признакам CISC-RISK:

 

A different line, derived from CISC, is represented by the RISC

(Reduced Instruction Set Computing) processors introduced in the

1980s, which are characterized mostly by how they differ from CISC

processors. The instructions are of fixed length, and of a regular format.

Operations are performed on registers only, of which a larger number

are available than on CISC processors. The only memory operations are

load and store. The hardware in RISC processors is simpler in principle

than in CISC ones, because a RISC architecture relies more on the compiler

for sequencing complex operations.

 

Но, конечно же, если Вы меня сможете

переубедить ссылкой на документ от Intel'а где сказано, что C51 это CISC, тогда я заберу свои слова

обратно.

 

Неплохо бы также увидеть ссылку на документ интела, где сказано, что x51 это RISC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну уж батенька, что-то вы не то тут сказанули, или описались.

Я писал эмулятор оного и архитектуру его знаю прекрасно.

 

Ну какой же это RISС. Длина команд может быть 1 2 или 3 байта.

Работа напрямую с внутренней памятью, когда для RISC характерна load-store

архитектура и работа с данными через регистровый файл.

Тот же AVR для достижения своей RISС-овости имеет 16-битную длину команды,

чтобы эффективно паковать в нее инструкции.

 

Вот выдержка с сайта интела по отличительным признакам CISC-RISK:

 

A different line, derived from CISC, is represented by the RISC

(Reduced Instruction Set Computing) processors introduced in the

1980s, which are characterized mostly by how they differ from CISC

processors. The instructions are of fixed length, and of a regular format.

Operations are performed on registers only, of which a larger number

are available than on CISC processors. The only memory operations are

load and store. The hardware in RISC processors is simpler in principle

than in CISC ones, because a RISC architecture relies more on the compiler

for sequencing complex operations.

Вообще-то, тут спор из серии является ли тот или иной чип МК или DSP. Вон MSP430, про него явно указано фирмой производителем, что он RISC, 27 инструкций (в комбинациях способов адресации, ессно, их больше получается). Тем не менее операции регистр-память (и даже память-память - копирование) и разная длина инструкций присутствуют в полный рост. Правда, разная длина инструкций там отчасти обусловлена тем, что в опкоде могут храниться длинные литералы (полные адреса), сам опкод имеет структуру регулярную. Насколько мне всегда было известно, 51-й - это CISC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

51 контроллер, это типичнейший представитель CISC архитектуры. Что же касается понятий быстродействие и производительность, это также не одно и тоже. Быстродействие характеризует только среднее чило операций вылолняемых за единицу времени. А производительность, характеризует объем выполняемых задач определенного класса. То есть, у 8-битного и 32-битного контроллеров с одинаковым быстродействием будет разная производительность, например, на арифметических задачах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Andy Mozzhevilov @ Apr 6 2006, 11:10)

Ну какой же это RISС. Длина команд может быть 1 2 или 3 байта.

Работа напрямую с внутренней памятью, когда для RISC характерна load-store

архитектура и работа с данными через регистровый файл.

Тот же AVR для достижения своей RISС-овости имеет 16-битную длину команды,

чтобы эффективно паковать в нее инструкции.

 

Обычный RISC.

Тут дело не в длине команды. load/store и работа с памятью напрямую - это одно и тоже. Чтение-модификация-запись - немного другое, но оно и не важно. если уж идти по такому пути SRAM в C51 можно считать большим регистровым файлом, а с внешней памятью он работает с помощью load/store. Все команды (кроме mul/div) выполняются не дольше 2х машинных циклов. CISCом его может сделать не длина команды в 3 байта и даже не трехоперандовая команда cjne (у AVR кстати есть команды длиной 4 байта), а всего лишь две команды mul ab и div ab которые выполняются "микропрограммным" путем. Если принебреч этими двумя командами или сделать их аппаратно, что в новых вариантах ядра C51 уже сделано, то чип становится классическим представителем RISC. Регистровые банки, быстрый переход на обработчик прерывания, небольшой (всего 111 меньше чем у AVR) набор команд.

 

если идти по пути подсчета байт в команде, то AVR явно бъет C51 своими 4х байтными командами.

 

 

Вообще-то, тут спор из серии является ли тот или иной чип МК или DSP. Вон MSP430, про него явно указано фирмой производителем, что он RISC, 27 инструкций (в комбинациях способов адресации, ессно, их больше получается). Тем не менее операции регистр-память (и даже память-память - копирование) и разная длина инструкций присутствуют в полный рост. Правда, разная длина инструкций там отчасти обусловлена тем, что в опкоде могут храниться длинные литералы (полные адреса), сам опкод имеет структуру регулярную. Насколько мне всегда было известно, 51-й - это CISC.

 

Спор действительно как раз из той серии. И не было бы никаких проблем если бы Intel классифицировал свой чип сам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

51 контроллер, это типичнейший представитель CISC архитектуры.

 

В чем? Где типичность CISC?

 

Берем CISC x86 берем первую попавшуюся команду Add Al, CS:[bX + SI + 4]. Может C51 хоть отдаленно похожее сделать?

 

Что же касается понятий быстродействие и производительность, это также не одно и тоже. Быстродействие характеризует только среднее чило операций вылолняемых за единицу времени. А производительность, характеризует объем выполняемых задач определенного класса. То есть, у 8-битного и 32-битного контроллеров с одинаковым быстродействием будет разная производительность, например, на арифметических задачах.

Не знаю. Там где я учился, быстродействие и производительность были синонимами. Может сейчас уже все не так. А вот получить эту производительность(быстродействие) можно двумя путями:

1. увеличив тактовую частоту,

2. распараллелив вычисления.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

на самом деле CISC от RISC отличается набором возможных методов адресации: у CISC количтество методов адресации гораздо больше и они более хитровывернутые, чем у RISC.

 

51й CISC по той причине, что CISC. Сравните с PIC (разработанный примерно в тоже время) и почувствуйте разницу. Сравнивать с AVR тяжело, потому что последний относится к "продвинутым" RISC, сегодня грань между разными типами по-простому становится все менее и менее заметна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

на самом деле CISC от RISC отличается набором возможных методов адресации: у CISC количтество методов адресации гораздо больше и они более хитровывернутые, чем у RISC.

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

 

Сравните с PIC (разработанный примерно в тоже время) и почувствуйте разницу. Сравнивать с AVR тяжело, потому что последний относится к "продвинутым" RISC, сегодня грань между разными типами по-простому становится все менее и менее заметна.

Сравнивать с AVR и с ARM нужно, потому что эти семейства сегодня определяют RISC архитектуру. Сравнивать же с разработками древних времен, когда еще не было разграничения на RISC и CISC как раз не стоит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

CISCом его может сделать не длина команды в 3 байта и даже не трехоперандовая команда cjne (у AVR кстати есть команды длиной 4 байта),

там 2 байта - это просто тупо полный адрес. Сам опкод вегда 16 бит.

 

а всего лишь две команды mul ab и div ab которые выполняются "микропрограммным" путем. Если принебреч этими двумя командами или сделать их аппаратно, что в новых вариантах ядра C51 уже сделано, то чип становится классическим представителем RISC. Регистровые банки, быстрый переход на обработчик прерывания, небольшой (всего 111 меньше чем у AVR) набор команд.

У AVR просто в табличке расписано много однитипных команд - типа установить бит-такой-то, сбросить бит-такой-то. Фактически там все сводится к операциям загруке из памяти в регистры/сохранения значений регистров в память, а все остальные операции произоводятся непосредственно с регистрами (за исключением нескольких команд для работы с I/O. Т.е. у AVR совершенно четко прослеживается разделение инструкций по разным классам.

 

Если речь идет о современных однотактовых клонах, то там внутри уже совсем не 51-й, действительно бодрый RISC. В классическом же 51-м все не так круто. Вдумайтесь, почему у него такая длинная растактовка - 1 цикл из 12 тактов. Не иначе микроавтомат там по этим тактам работает. И инструкций там 256 штук - в смысле 256 опкодов, на каждый вариант какого-нибудь мува - свой опкод. Полный набор инструкций - он и есть Complete. И если у RISC'ов в опкоде операнды кодирутся, то у 51-го по большей части все проще - просто выделен отдельный опкод и все.

 

если идти по пути подсчета байт в команде, то AVR явно бъет C51 своими 4х байтными командами.

Никого он там не бьет. 4-байтные команды, где тащится полный адрес - lds/sts никто использовать не заставляет. Можно грузить указатель и от него работать, что, кстати, прекрасно делает IAR'овский компилятор. lds/sts удобнее и чуть выгоднее при разовом обращении. Если хотя бы надо к двум байтам обратиться, то уже паритет. Если больше, то уже проигрывает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если речь идет о современных однотактовых клонах, то там внутри уже совсем не 51-й, действительно бодрый RISC. В классическом же 51-м все не так круто. Вдумайтесь, почему у него такая длинная растактовка - 1 цикл из 12 тактов. Не иначе микроавтомат там по этим тактам работает. И инструкций там 256 штук - в смысле 256 опкодов, на каждый вариант какого-нибудь мува - свой опкод. Полный набор инструкций - он и есть Complete. И если у RISC'ов в опкоде операнды кодирутся, то у 51-го по большей части все проще - просто выделен отдельный опкод и все.

Не совсем верно. У C51 как раз именно 111 опкодов. Первый байт команды даже не может принимать все 256 значений байта. Навскидку по памяти пример invalid opcode - $A5. А большое число как бы опкодов первого байта команды из-за того, что там располагается адрес 11 битного операнда для команд ACALL/AJMP, а также в первом байте кодируются и номера регистров, т.е. и второе утверждение (насчет того, что у 51-го по большей части все проще - тоже не совсем верно).

 

если идти по пути подсчета байт в команде, то AVR явно бъет C51 своими 4х байтными командами.

Никого он там не бьет. 4-байтные команды, где тащится полный адрес - lds/sts никто использовать не заставляет. Можно грузить указатель и от него работать, что, кстати, прекрасно делает IAR'овский компилятор. lds/sts удобнее и чуть выгоднее при разовом обращении. Если хотя бы надо к двум байтам обратиться, то уже паритет. Если больше, то уже проигрывает.

Я имел в виду бъет по длине команды.

 

PS: ну если все хотят считать C51 CISCом - Аминь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Andy Mozzhevilov @ Apr 6 2006, 11:10)

Ну какой же это RISС. Длина команд может быть 1 2 или 3 байта.

Работа напрямую с внутренней памятью, когда для RISC характерна load-store

архитектура и работа с данными через регистровый файл.

Тот же AVR для достижения своей RISС-овости имеет 16-битную длину команды,

чтобы эффективно паковать в нее инструкции.

Обычный RISC.

Тут дело не в длине команды. load/store и работа с памятью напрямую - это одно и тоже.

Не могу согласиться. Архитектура 51-го никаким боком не подходит под RISC. Даже Мелкочип свои PIC-и осторожно называл RISC-like. Вот не самое плохое определение RISC:

 

(Reduced Instruction Set Computer) A computer architecture that reduces chip complexity by using simpler instructions. RISC compilers have to generate software routines to perform complex instructions that were previously done in hardware by CISC computers. In RISC, the microcode layer and associated overhead is eliminated.

 

RISC keeps instruction size constant, bans the indirect addressing mode and retains only those instructions that can be overlapped and made to execute in one machine cycle or less. The RISC chip is faster than its CISC counterpart and is designed and built more economically.

 

Проверяем 51-й:

 

-- Проще набор инструкций. Соглашаться или нет - дело вкуса, однако по здравому размышлению я бы соглашаться не стал. Инструкций в 51-м много, и они сильно разномастные, неструктурированные. Просто из "большого набора" возможных CISC-инструкций выбраны те, которые наиболее употребительны в embedded-приложениях, чтобы общее количество не превышало 256 (один байт кода команд). Что явно не RISC. Про AJMP размусоливать не буду, на мой взгляд, это явный ляп разработчиков, ненужная по жизни команда, которая зазря съедает множество кодов.

Здесь я бы добавил такой характерный признак: из набора RISC команд выброшены те, которые удобны для программирования на ассемблере, но неудобны при написании компиляторов ЯВУ. При таком уточнении 51-й - совершенно точно не RISC, его система команд явно создавалась с заботой об ассеблерщиках. Для настоящего RISC-а писать программы на ассемблере должно быть мучением и мазохизмом. В идеале - брэйнфак с одной командой. :) Для 51-го это условие не выполняется, для него вполне приятно на ассемблере писать.

 

-- Отсутствует микрокодирование команд. Насколько мне известно, в оригинальном 51-м оно имело место быть. По крайней мере, когда я пытался заказать в МЭП-е советский клон i8044 (это 51-й с SDLC), разработчики сразу же сказали что будут делать с микрокодом, да еще хотели растактовку сделать не на 12 клоков, а на 16 :)

 

-- Постоянный размер команд. В 51-м этот наиболее характерный признак RISC отсутствует, размер команд переменный.

 

-- Нет косвенной адресации. На мой взгляд, не самый важный признак, но все же: в 51-м она есть, однако...

 

-- В определении об этом забыли, но вообще-то RISC должен любую команду выполнять за 1 такт, что неверно для 51-го. Имхо, поэтому PIC и не называли настоящим RISC-ом, хотя по другим признакам он подходит. Еще у старых PIC-ов система команд тоже оптимизировалась для ассемблерного написания программ, а не для ЯВУ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...Для настоящего RISC-а писать программы на ассемблере должно быть мучением и мазохизмом. В идеале - брэйнфак с одной командой. :)
Простите, но с этим вынужден не согласиться. Например, ADSP-21xx от AD - типичный RISC-процессор, кроме того, истинно однотактовый (хотя внутренний генератор имеет 4 фазы, но это несущественно). Более приятного и лёгкого для освоения ассемблера, чем у ADSP, я до сих пор не встречал. Однотактовость и отсутствие конвейера делает процесс создания софта на асме гораздо менее трудоёмким занятием, чем для любого другого известного мне процессора, как RISC, так и CISC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...В идеале - брэйнфак с одной командой. :)...
Их там вроде 8

http://www.caxapa.ru/mcu/wwwboard.html?id=56255

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...