Версия для печати темы
Форум «Всё о Паскале» _ Свободное общение _ Сверхоперативная память
Автор: striker 16.02.2008 22:45
Нужен доклад на тему: Сверхоперативная память
Я конечно понимаю yandex, rambler, google ...
Ищу пока, но не много нашел, тем более с иннетом проблемы.
Может у кого есть или ссылочку дадите?
Автор: andriano 16.02.2008 23:52
"Сверхоперативная память" - этот термин либо не является общеупотребительным, либо в настоящее время устарел. Надо бы уточнить, что именно ты под ним понимаешь.
Автор: Altair 17.02.2008 15:40
Цитата
"Сверхоперативная память" - этот термин либо не является общеупотребительным
Термин широко распространен в инженерной среде и означает регистровую память процессора.
http://www.intuit.ru/department/hardware/mpbasics/4/2.html
http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80_%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80%D0%B0
К книгу Питера Нортона "Программно-аппаратная организация компьютера IBM PC" так же стоит посмотреть, там хорошо и на доступном уровне объясняются основы сверхоперативной памяти и кстати там она так и называется.
Автор: hardcase 17.02.2008 18:50
Смею дополнить, не только регистровую память. Это еще и кэш-память процессора (L1, L2, L3).
По поводу иерархии памяти и кое чего про кэш было хорошо написано у Криса Каспеского (книжка вот тута, на столе у меня лежит) "Техника оптимизации программ. Эффективное использование памяти".
Автор: andriano 17.02.2008 19:54
Цитата(Altair @ 17.02.2008 11:40)
Термин широко распространен в инженерной среде и означает регистровую память процессора.
http://www.intuit.ru/department/hardware/mpbasics/4/2.html
http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80_%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80%D0%B0
Я ведь не зря упомянул про то, что термин, вероятно, является устаревшим.
Понимаешь, проблема в том, что трактовка свероперативной памяти как регистровой появилась задолго до разработки архитектуры Intel x86. А архитектура это, надо сказать, была весьма своеобразной. В первую очередь просто смехотворно малым количеством регистров общего назначения (РОН).
Если в процессоре, скажем, 128 РОН, то такой пул регистров можно рассматривать как небольшой кусочек памяти, а если их всего 4, да еще каждый из них имеет специфическое назначение, то рассматривать их в качестве памяти уже весьма сомнительно. Кроме того, в то время было принято выделять из всех регистров аккумулятор. Т.е. сверхоперативная память на регистрах отдельно, а аккумулятор - отдельно. В х86 же аналог аккумулятора (AL, AX, EAX) входит в состав РОН. Поэтому если уж говорить о сверхоперативной памяти как о памяти регистров процессора, то надо оговаривать, что к архитектуре х86 это неприменимо. А ссылки твои касаются именно регистров х86.
Сегодня под сверхоперативной памятью, в особенности, если дело касается х86, принято понимать кэш-память. Но во избежание путаницы этим термином (сверхоперативная) предпочитают не пользоваться, употребляя термин "кэш".
Цитата
К книгу Питера Нортона "Программно-аппаратная организация компьютера IBM PC" так же стоит посмотреть, там хорошо и на доступном уровне объясняются основы сверхоперативной памяти и кстати там она так и называется.
В каком году она была написана?
striker, в общем, вопрос остается в силе - что ты под этим подразумеваешь. Сегодня, с моей точки зрения, надо либо рассматривать эту тему исключительно в историческом аспекте, обратив внимание на то, что к настоящему времени этот термин практически вышел из упоребления с узаканием причин, по которым это произошло, либо конкретизировать вопрос с точки зрения современной терминологии: что имеется в виду, регистры или кэш.
Автор: Altair 17.02.2008 20:32
Здесь спорить не о чем.
Сверхоперативная память есть как раз регистры, т.к. именно они являются источниками самой быстрой (отсюда и название сверхоперативная) памяти, которой может пользоваться процессор.
Кэш (или кеш?) конечно тоже является сверхоперативной памятью по данному показателю, но с ним нельзя оперировать (?).
Цитата
Поэтому если уж говорить о сверхоперативной памяти как о памяти регистров процессора, то надо оговаривать, что к архитектуре х86 это неприменимо.
Вполне применимо и применяют.
Добавлено через 5 мин. http://ru.wikipedia.org/wiki/%D0%A1%D0%B2%D0%B5%D1%80%D1%85%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%B0%D1%8F_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C
Кстати про кэш там ничего не сказано.
Автор: andriano 17.02.2008 20:54
Цитата(Altair @ 17.02.2008 16:32)
Здесь спорить не о чем.
Я не спрю, я объясняю.
Цитата
Сверхоперативная память есть как раз регистры, т.к. именно они являются источниками самой быстрой (отсюда и название сверхоперативная) памяти, которой может пользоваться процессор.
Еще раз: принято разделять память (устройство для хранения данных) и аккумулятор (устройство для обработки данных). Все регистры х86 предназначены для обработки и, в то же время, их слишком мало, чтобы всерьез можно было говорить о функции хранения.
Это первое.
Второе: современные процессоры имеют мало общего со своей программной моделью. В частности, скорость доступа к регистру и ячейке кэша может быть одной и той же.
Цитата
Кэш (или кеш?) конечно тоже является сверхоперативной памятью по данному показателю, но с ним нельзя оперировать (?).
Во-первых, начиная с Pentium III, можно. А во-вторых, если бы и было нельзя, то что?
Нельзя оперировать с конвейером, но это же не значит, что его не существует.
Цитата
Вполне применимо и применяют.
ПрименяЛИ.
С появлением и популяризацией архитектуры х86 на нее пытались спроецировать те термины, которые существовали в выч.технике до этого. Не всегда удачно. Что в конце концов поняли и потому перестали употреблять этот термин. Кроме, возможно, нескольких авторов либо склонных к плагиату, либо не имеющих представлений о современном состоянии полупроводниковой отрасли.
Кстати, раскрою еще одну тайну:
Раньше оперативную память делали на магнитных сердечниках или линиях задержки. В общем, не на полупроводниках. Но т.к. работала она не слишком быстро, то делали буферную полупроводниковую память на триггерах (называемую также регистрами). Именно эту память и принято было называть сверхоперативной или регистровой. К регистрам микропроцессора эта память никакого отношения не имеет, являясь полным функциональным аналогом современной кэш-памяти. Так что отождествление сверхоперативной памяти с регистрами процессора - лишь результат терминологической путаницы, связанной с многозначностью слова "регистр".
Автор: Altair 17.02.2008 21:00
Когда один человек пытается противоречить многим это смешно.
andriano, лично для себя можешь считать как знаешь, по теме уже все сказано выше.
Автор: andriano 17.02.2008 21:00
Цитата(Altair @ 17.02.2008 16:32)
А вот аргумент в пользу того, что термин является употребимым и не устаревшим.
Обрати внимание, что текст посвящен исключительно регистрам, кроме заголовка термин "сверхоперативная память" нигде не встречается.
Кроме того, достаточно прочитать статью, чтобы понять, что регистры, упоминаемые в данной статье Википедии, никакого отношения к регистрам процессора не имеют.
И, самое главное: разве Википедия не дает трактовок устаревшим терминам?
Автор: hardcase 17.02.2008 21:06
Цитата(Altair @ 17.02.2008 16:32)
Кэш (или кеш?) конечно тоже является сверхоперативной памятью по данному показателю, но с ним нельзя оперировать (?).
Кстати про кэш там ничего не сказано.
Регистры в контексте реферата менее интересны, чем кэш-память, хотябы потому, что регистровая память чрезвычайно мала, и реализуется отностительно тривиально (лично игрался в VHDL на ПЛИС).
Кэш-память гораздо интереснее. Это, бывает, реальная двухпортовая память (1 уровень кэша), это стратегии доступа к кэшу, это стратегия поддержки синхронизации кэша и оперативной памяти.
Во всяком случае, в упомянутой мною книге Криса Касперского кэшу посвящена целая глава (160 страниц).
Оперировать с кэшем, формально нельзя, но зато можно писать код так, чтобы часто исполняемые участки (например циклы) умещались в кэш-линейку, устранять зависимости по данным и прочие более сложные техники.
Автор: andriano 17.02.2008 21:06
Цитата(Altair @ 17.02.2008 17:00)
Когда один человек пытается противоречить многим это смешно.
andriano, лично для себя можешь считать как знаешь, по теме уже все сказано выше.
Повторяю, я не противоречу, я объясняю.
В конце концов, я сам являюсь специалистом в этой области, формирующим складывающуюся терминологию. И я утверждаю, что термин "Сверхоперативная память" в настоящее время является малоупотребительным вследствие своей неоднозначности. Так что если не хочешь вдаваться в суть объяснений, можешь просто положиться на мой авторитет.
Добавлено через 2 мин. Цитата(hardcase @ 17.02.2008 17:06)
Оперировать с кэшем, формально нельзя, но зато можно писать код так, чтобы часто исполняемые участки (например циклы) умещались в кэш-линейку, устранять зависимости по данным и прочие более сложные техники.
Раз уж мы говорим о х86, то формально можно: набор инструкций, начиная с SSE, содержит средства управления кэш-памятью.
Автор: hardcase 17.02.2008 21:25
Цитата(andriano @ 17.02.2008 17:06)
Раз уж мы говорим о х86, то формально можно: набор инструкций, начиная с SSE, содержит средства управления кэш-памятью.
Имел в виду программирование на языках высокого уровня.
Низкоуровневое программирование с использованием SSE уже совсем другая история
Автор: andriano 17.02.2008 22:06
Цитата(hardcase @ 17.02.2008 17:25)
Имел в виду программирование на языках высокого уровня.
Низкоуровневое программирование с использованием SSE уже совсем другая история
Можно или нельзя - вопрос принципиальный.
Т.е. возможность есть.
А уж включать эту возможность в каждый конкретный ЯВУ - дело исключительно его разработчика. (есть же в Си переменные со спецификатором register)
Даже в уже существующих ЯВУ можно подискутировать о возможности использования ассемблерных вставок и реализации библиотечных функций типа копирования памяти.
PS. Никто, кстати, не мешает компилятору при встрече с целочисленными переменными, имеющими имена "i" и "j" закреплять за ними сразу местечко в кэше. ;)
Автор: cooler 22.04.2008 19:06
кэш скорее всего
Автор: striker 22.04.2008 19:43
Да.
Вобщем спросил, сказали кэш, а про регистры процессора - можно рассмотреть как первый уровень
Есть у кого ссылочка на подробное описание кэш (уровни, схема работы,...)?
Автор: hardcase 23.04.2008 4:20
Возможно стоит внимательнее читать сообщения?
Цитата(hardcase @ 17.02.2008 15:50)
кое чего про кэш было хорошо написано у Криса Каспеского "Техника оптимизации программ. Эффективное использование памяти".
Автор: striker 23.04.2008 20:34
Все уже отчитался... всмысле доклад