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

 
 
> Гарвардская и фон неймовская, разница на практике?
Zelepuk
сообщение Oct 28 2011, 19:33
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Какая разнится между гарвардской и фон неймовской архитектурой для С-программиста?
Если можно конкретный жизненный пример.
Заранее благодарен.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
V_G
сообщение Oct 28 2011, 23:24
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Да, для Си-программиста разницы никакой.
Разница в скорости работы полученного кода.
Элементарная операция сложения операндов из внешней памяти в Неймановской архитектуре требует 3 последовательных обращений к памяти (загрузка команды, загрузка 1-го операнда, загрузка 2-го операнда/выполнение сложения).
При Гарвардской архитектуре эта же операция потребует уже 2 обращения: загрузка команды из памяти программ и одновременно загрузка 1-го операнда из памяти данных, затем загрузка второго операнда и выполнение инструкции.
Налицо выигрыш 33% в скорости.
Плюс гарвардская архитектура позволяет делать разные разрядности памяти программ и данных, благодаря чему все или подавляющее большинство кодов инструкций имеют длину всего в одно слово, что также ускоряет их загрузку.
Go to the top of the page
 
+Quote Post
777777
сообщение Oct 31 2011, 10:08
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(V_G @ Oct 29 2011, 03:24) *
Да, для Си-программиста разницы никакой.

Агащязпрям. Попробуйте в AVR создать массив констант в памяти программ и обратиться к нему - сразу поймете разницу.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Oct 31 2011, 10:42
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(777777 @ Oct 31 2011, 13:08) *
Попробуйте в AVR создать массив констант в памяти программ и обратиться к нему - сразу поймете разницу.

С точки зрения языка Си: в какой памяти размещен массив - разницы не будет, обращение к элементам массива будет одинаково (что-то типа M[i]). Другое дело - указатели, но эту проблему должны решать компиляторописатели - решили же эту проблему в Keil...
Go to the top of the page
 
+Quote Post
777777
сообщение Nov 3 2011, 05:13
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(Палыч @ Oct 31 2011, 14:42) *
С точки зрения языка Си: в какой памяти размещен массив - разницы не будет, обращение к элементам массива будет одинаково (что-то типа M[i]). Другое дело - указатели, но эту проблему должны решать компиляторописатели - решили же эту проблему в Keil...

В кейле это решили введением нестандартных ключевы слов.

Цитата(_Pasha @ Nov 1 2011, 13:48) *
Дык в ГЦЦ решено давным давно.

Да ну? И как же это сделано? Неужели в стандарт языка ввели новое ключевое слово, означающее размещение переменной в памяти программ?
Цитата(_Pasha @ Nov 1 2011, 13:48) *
Не надо было бы пеарить обертки типа PROGMEM - не появилось бы надстроек соответствующих. Бы.

Я ничего не понял в этом предложении. Нельзя ли поподробнее и по-русски?

Цитата(Палыч @ Oct 31 2011, 14:42) *
С точки зрения языка Си: в какой памяти размещен массив - разницы не будет, обращение к элементам массива будет одинаково (что-то типа M[i]). Другое дело - указатели, но эту проблему должны решать компиляторописатели - решили же эту проблему в Keil...

Кстати о кейле: вообще-то топикстартер поставил вопрос "Какая разнится между гарвардской и фон неймовской архитектурой для С-программиста?" И вы дружно начали кричать, что разницы никакой. Но во-первых даже при размещении массива программист должен не просто написать M[i], а еще и указать в какой именно памяти он хочет его разместить - а значит разница для программиста уже есть. И после этого он должен пользоваться указателями соответствующего типа чтобы не перепутать обращение к разным типам памятей - и как после этого можно утверждать что для программиста разницы никакой?
Go to the top of the page
 
+Quote Post
Палыч
сообщение Nov 3 2011, 08:25
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(777777 @ Nov 3 2011, 09:13) *
В кейле это решили введением нестандартных ключевы слов.

Если Вы ведете речь о размещении массива, то - да, нестандартные ключевые слова для этого ввели в большенство трансляторов. Я же говорил об указателе: в Keil - "Generic Pointers", транслятор сам "разбирается" с типами памяти.

Цитата(777777 @ Nov 3 2011, 09:13) *
... а еще и указать в какой именно памяти он хочет его разместить - а значит разница для программиста уже есть. И после этого он должен пользоваться указателями соответствующего типа чтобы не перепутать обращение к разным типам памятей - и как после этого можно утверждать что для программиста разницы никакой?

Если программист хочет разместить массив именно в конкретной памяти - то некоторая разница есть (при описании массива). Но, можно, и - "по-умолчанию" (не всегда эффективно и возможно). Про указатели - см. выше (Generic Pointers).
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Zelepuk   Гарвардская и фон неймовская   Oct 28 2011, 19:33
- - Ruslan1   Цитата(Zelepuk @ Oct 28 2011, 22:33) Кака...   Oct 28 2011, 19:42
|- - Tiro   Цитата(Ruslan1 @ Oct 28 2011, 22:42) Ника...   Oct 28 2011, 19:46
|- - stells   Цитата(V_G @ Oct 29 2011, 03:24) Элемента...   Oct 29 2011, 05:34
||- - V_G   Цитата(stells @ Oct 29 2011, 15:34) так э...   Oct 29 2011, 06:43
||- - Sergey_Aleksandrovi4   В МК с архитектурой Фон Неймана возможно поместить...   Oct 29 2011, 10:36
||- - dxp   Цитата(Sergey_Aleksandrovi4 @ Oct 29 2011, 17...   Oct 29 2011, 12:59
||- - Ruslan1   Цитата(777777 @ Nov 3 2011, 07:13) Кстати...   Nov 3 2011, 08:20
|||- - 777777   Цитата(Ruslan1 @ Nov 3 2011, 12:20) Вы сч...   Nov 3 2011, 10:03
|||- - Палыч   Поскольку язык Си был ориентирован на архитектуру ...   Nov 3 2011, 11:55
||||- - 777777   Цитата(Палыч @ Nov 3 2011, 15:55) Посколь...   Nov 3 2011, 14:52
|||- - Ruslan1   Цитата(777777 @ Nov 3 2011, 12:03) Мудрен...   Nov 3 2011, 21:21
|||- - 777777   Цитата(Ruslan1 @ Nov 4 2011, 01:21) Перев...   Nov 4 2011, 19:32
|||- - Ruslan1   Цитата(777777 @ Nov 4 2011, 21:32) Я гово...   Nov 5 2011, 12:34
|||- - 777777   Цитата(Ruslan1 @ Nov 5 2011, 16:34) res =...   Nov 5 2011, 17:25
|||- - Ruslan1   Цитата(777777 @ Nov 5 2011, 19:25) Скорее...   Nov 5 2011, 20:59
|||- - V_G   Цитата(777777 @ Nov 6 2011, 03:25) Неужел...   Nov 6 2011, 00:06
|||- - 777777   Цитата(V_G @ Nov 6 2011, 04:06) Глубоко к...   Nov 6 2011, 05:30
||||- - V_G   Цитата(777777 @ Nov 6 2011, 15:30) Как же...   Nov 6 2011, 06:51
||||- - Ruslan1   Цитата(V_G @ Nov 6 2011, 08:51) Вообще-то...   Nov 6 2011, 09:36
||||- - 777777   Цитата(Ruslan1 @ Nov 6 2011, 13:36) 1. Ра...   Nov 7 2011, 05:35
||||- - Harvester   Цитата(777777 @ Nov 7 2011, 09:35) Фигасе...   Nov 7 2011, 06:32
||||- - 777777   Цитата(Harvester @ Nov 7 2011, 10:32) А в...   Nov 7 2011, 07:41
||||- - Палыч   Цитата(777777 @ Nov 7 2011, 11:41) Всё, э...   Nov 7 2011, 11:57
|||- - ILYAUL   Цитата(V_G @ Nov 6 2011, 04:06) И уж в лю...   Nov 6 2011, 20:05
|- - Ruslan1   Цитата(777777 @ Oct 31 2011, 12:08) Агащя...   Oct 31 2011, 13:02
|- - _Pasha   Цитата(777777 @ Oct 31 2011, 14:08) Агащя...   Nov 1 2011, 09:48
- - Zelepuk   Спасибо! Получается стоит учитывать особенност...   Oct 29 2011, 05:16
- - Dog Pawlowa   Цитата(Zelepuk @ Oct 28 2011, 22:33) фон ...   Oct 29 2011, 05:47
- - kan35   Неймановская безусловно ЛУЧШЕ из за линейного адре...   Oct 29 2011, 12:44
- - Ruslan1   Цитата(kan35 @ Oct 29 2011, 15:44) Нейман...   Oct 29 2011, 17:21


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 09:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01489 секунд с 7
ELECTRONIX ©2004-2016