2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3  След.
 
 Re: Чтение из памяти
Сообщение25.07.2018, 10:14 
Аватара пользователя


27/01/09
814
Уфа
Pavia в сообщении #1328636 писал(а):
Dmitriy40 Chifu Внешние устройства компьютера это устройства находящиеся снаружи корпуса. Ни шины, ни способ адресации, ни наличие интерфейс для доступа или преобразования адреса в этом определение нет. ...
Можно рассматривать компьютер как конкретное устройство (для продажи) и в виде функциональной схемы. На функциональной схеме будет процессор, ОЗУ (ПЗУ), системная шина и прочие (внешние запоминающие и ввода-вывода) устройства, которые как правило имеют собственный интерфейс и подключаются к системной шине через контроллер. Выше я неправильно написал, что внешние устройства в адресном пространстве ОЗУ, они в адресуемом пространстве.

 Профиль  
                  
 
 Re: Чтение из памяти
Сообщение25.07.2018, 16:46 
Заслуженный участник


20/08/14
11070
Россия, Москва
С точки зрения архитектуры компьютера, внешними будут все устройства, не подпадающие под RAM (которое не только ОЗУ, но и к примеру flash память, отображённая на адресное пространство памяти). Всё что сидит в адресном пространстве ввода/вывода или не адресуемое прямо как память (а например через регистры) - всё внешние устройства.
От расположения в корпусе и даже от наличия такового это не зависит. И определяется именно что протоколами, шинами, набором командам процессора.

С точки зрения конструктива делить устройства на внутренние и внешние мне не интересно (т.к. есть ноутбуки и смартфоны, которые получается вообще без внешних устройств; и даже монитор внутренний; тачпады которые могут быть и встроенными в них и внешними; SD карты, которые внешние или внутренние смотря как подключен считыватель; причём и монитор, и тачпад, и SD карта могут быть и внутренними и внешними одновременно, что вообще аннулирует ценность такого деления). И ТС подразумевал явно не это.

 Профиль  
                  
 
 Re: Чтение из памяти
Сообщение25.07.2018, 18:57 


27/08/16
9426
Qlin в сообщении #1327351 писал(а):
Существует ли такая информация, которая может быть подана только с ОЗУ?
Что значит "подана"? Впервые встречаю такой термин.

-- 25.07.2018, 18:57 --

EUgeneUS в сообщении #1328638 писал(а):
Встроенный CD-привод - это внешнее устройство или нет?
Если встроенный - то нет.

-- 25.07.2018, 18:59 --

Qlin в сообщении #1327351 писал(а):
Хорошо, компьютер может подавать информацию не из оперативной памяти, а с SSD или HDD сразу на устройства вывода.
Как правило, не может.

-- 25.07.2018, 19:01 --

Dmitriy40 в сообщении #1328586 писал(а):
хотя, чисто для PCI/PCIe дисков на flash это теоретически возможно, но кажется нигде реально не реализовано из-за ненужности и тормозов, впрочем тут я могу и ошибиться
Микроконтроллеры и сейчас часто исполняют программы напрямую из ROM.

-- 25.07.2018, 19:14 --

Dmitriy40 в сообщении #1328726 писал(а):
И ТС подразумевал явно не это.
Что подразумевал ТС понять сложно.

 Профиль  
                  
 
 Re: Чтение из памяти
Сообщение25.07.2018, 19:26 
Заслуженный участник


12/07/07
4438
 i  Уважаемые участники обсуждения!

1. В зависимости от контекста устройства по-разному делятся на внутренние и внешние. С этим все неоднократно сталкивались. (Например, иногда HDD/DVD/… подразделяют на внешние и внутренние, но все эти устройства внешние по другой классификации.) В таком случае спор о терминах — не уместен. Указывайте, пожалуйста, в каком смысле устройство внешнее/внутреннее и проблем не будет.
Тем более, что ТС действительно не очень внятно сформулировал тему и уточнений от него можно не дождаться. Но вопрос об обмене данными между устройствами без копирования при помощи in-out ЦП или оперативной памяти скорее всего будет интересен широкому кругу.

2. Пожалуйста, приводите обоснования своим утверждениям сразу, не дожидаясь требований участников или модераторов.

UPD. Этот пост через некоторое время будет удалён.

 Профиль  
                  
 
 Re: Чтение из памяти
Сообщение25.07.2018, 19:39 
Аватара пользователя


11/12/16
13195
уездный город Н
GAA в сообщении #1328757 писал(а):
Но вопрос об обмене данными между устройствами без in-out ЦП или оперативной памяти скорее всего будет интересен широкому кругу.


Если читать именно или, то пример приводил ранее - DMA. Смысл которого ясен, как слеза пионерки: при загрузки файла с диска в ОЗУ через ЦП каждый байт занимает шину два раза, а через DMA - один.
А вот если читать и (чтобы и не через ЦП, и не через ОЗУ), то это весьма специфичные приложения должны быть. Хотя есть и такие, RAID-контроллеры, например.

 Профиль  
                  
 
 Re: Чтение из памяти
Сообщение25.07.2018, 19:50 
Заслуженный участник


12/07/07
4438
Тут можно придумать кучу ситуаций.

1. Внешнее устройство подключено к другому внешнему устройству.
2. Внешние устройства обслуживаются одним контроллером или коммутатором. На «персоналках» обмен может идти не через южный мост или процессор? Например, на одной карте два GPU, объединённые при помощи коммутатором PCI-e. Другой вариант 4 PCI-e 16 слота (8-х каждый) и есть коммутатор между этими слотами и ЦП с 16 линиями PCI-e. [Из древнего: коммутатор PEX8747 PLX Technology AMD Radeon R9 295 X2 и Supermicro C7Z270-PG (мать)]
На видеокарты ставят SSD. А как они с GPU обмериваются данными?
3. Внешние устройства — независимые устройства на основных шинах с «хабами» в «южном мосту» (в IOHub). Для простоты одно на USB, а второе на PCI Express или два разных устройства на PCI Express.

И более общий вопрос: где начинающему можно найти подробное описание арбитража на PCI Express (желательно на русском). И вообще, где начинающему найти подробное и доходчивое описание работы PCI Express (желательно на русском).

Кто бы доходчиво рассказал и подходящую литературу посоветовал!

 Профиль  
                  
 
 Re: Чтение из памяти
Сообщение25.07.2018, 19:55 


27/08/16
9426
GAA в сообщении #1328757 писал(а):
Но вопрос об обмене данными между устройствами без in-out ЦП или оперативной памяти скорее всего будет интересен широкому кругу.
В универсальных компьютерах это выглядит бессмысленным ввиду обычно различных требований к представлениям данных и к их потокам у различных устройств, сидящих на общей шине. В специализированных вычислителях встречаются шины, соединяющие отдельные устройства друг другом попарно или группами, к которым центральный процессор не имеет доступа. Но можно вспомнить и digital link кабелёчек между CD-ROM и звуковой картой как пример такой прямой связи в универсальных компах.

SLI - да, вот пример современной такой шины, кажется.

 Профиль  
                  
 
 Re: Чтение из памяти
Сообщение25.07.2018, 20:03 
Заслуженный участник


12/07/07
4438
Ещё, вдогонку моему предыдущему сообщению. Хорошо бы приводить конкретные примеры и детали.

(Почему? Например, в теории при помощи контролера ПДП можно копировать блоки информации в основной оперативной памяти из одних участков в другие, но на XT (тогда это было актуально) у меня не вышло.)

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

 Профиль  
                  
 
 Re: Чтение из памяти
Сообщение25.07.2018, 20:09 


27/08/16
9426
GAA в сообщении #1328763 писал(а):
На «персоналках» обмен может идти не через южный мост или процессор? Например, на одной карте два GPU, объединённые при помощи коммутатором PCI-e.
PCIe - это дерево с выделенным корнем.
Цитата:
The capability to route peer-to-peer transactions between hierarchy domains through a Root Complex is optional and implementation dependent. For example, an implementation may incorporate a real or virtual Switch internally within the Root Complex to enable full peer-to-peer support in a software transparent way.


UPD Но у PCIe свитчей, кажется, сейчас требуется поддержка P2P. Вообще говоря, PCIe - это сложная шина, спецификация которой занимает 860 страниц, которая маршрутизирует пакеты с данными между узлами, буферизуя их по дороге и предоставляя кучу дополнительных сервисов, вроде приоритезации и изохронного обмена. Если её правильно сконфигурировать, то можно выжать очень много необычного. Не факт, что те же Винды используют все её возможности.

-- 25.07.2018, 20:14 --

GAA в сообщении #1328771 писал(а):
Например, в теории при помощи контролера ПДП можно копировать блоки информации в основной оперативной памяти из одних участков в другие, но на XT (тогда это было актуально) у меня не вышло.

У современных встраиваемых процессоров встречается даже специализированный "QDMA" контроллер, предназначенный только для копирования блоков между двумя буферами в оперативной памяти.

GAA в сообщении #1328771 писал(а):
И те удивительные девайсы, которые появились в последнее время, как они работают?
В последнее время появилось много чего удивительного. Что конкретно вас интересует?

 Профиль  
                  
 
 Re: Чтение из памяти
Сообщение25.07.2018, 20:30 
Заслуженный участник


12/07/07
4438
realeugene в сообщении #1328772 писал(а):
У современных встраиваемых процессоров встречается даже специализированный "QDMA" контроллер, предназначенный только для копирования блоков между двумя буферами в оперативной памяти.
И не только у современных, но и на машинах 30 летней давности. Но не на XT. И это было просто к примеру, поэтому не буду приводить обоснование, а то уйдём далеко от темы.

В научно-популярной теме не может быть конкретных вопросов. Чтобы задать конкретный осмысленный вопрос его автор уже должен почти знать ответ на него. :) Ожидается развернутый рассказ для интересующихся. На многие вопросы, которые мне задают в ближайшем окружении, я не знаю ответы, а специалисты с праздношатающимися не очень общаются. Поэтому интересен ликбез, к которому можно было бы отослать. Ну, и два примера я привёл выше. И хотелось бы, чтобы ответ был рассчитан не на специалистов.

 Профиль  
                  
 
 Re: Чтение из памяти
Сообщение25.07.2018, 20:34 
Заслуженный участник


20/08/14
11070
Россия, Москва
realeugene в сообщении #1328755 писал(а):
Микроконтроллеры и сейчас часто исполняют программы напрямую из ROM.
ROM является полным аналогом RAM, только без операций записи. Буду рад если подскажете МК, выполняющий код напрямую из SPI или I2C памяти (и не из промежуточного ОЗУ или кэша!), сам про такие не помню. Знаю лишь про автоматы загрузки прошивки во внутреннюю RAM у FPGA (и редких МК) и про встроенное процессорное ядро в FPGA с возможностью выполнять код напрямую из любой внешней памяти, но для ТС это суперэкзотика.

 Профиль  
                  
 
 Re: Чтение из памяти
Сообщение25.07.2018, 20:45 


27/08/16
9426
Dmitriy40 в сообщении #1328785 писал(а):
ROM является полным аналогом RAM, только без операций записи.
Тогда и устройства в расширителе PCIe, вынесенном при помощи оптики метров на пять, тоже являются полным аналогом памяти. Уже давно практически вся периферия memory-mapped. У большинства процессоров вообще нет отдельного IO адресного пространства.

Ха! Вот тут вот обещают полную скорость PCIe Gen 3 на расстоянии до 100 метров! https://www.samtec.com/optics/optical-cable/pcie/pcie Можно вынести туда свою любимую игровую видеокарту.

Dmitriy40 в сообщении #1328785 писал(а):
Буду рад если подскажете МК, выполняющий код напрямую из SPI или I2C памяти (и не из промежуточного ОЗУ или кэша!),
В обычном PC BIOS начинает исполняться непосредственно из ROM, сидящем сейчас на 4-битной LPC шине, являющейся логически ISA шиной, только упакованной в 7 проводов. Когда ещё не известно, вставлена SDRAM или нет.

 Профиль  
                  
 
 Re: Чтение из памяти
Сообщение25.07.2018, 20:48 
Аватара пользователя


07/01/13
261
NJ
Dmitriy40 в сообщении #1328785 писал(а):
realeugene в сообщении #1328755 писал(а):
Микроконтроллеры и сейчас часто исполняют программы напрямую из ROM.
ROM является полным аналогом RAM, только без операций записи. Буду рад если подскажете МК, выполняющий код напрямую из SPI или I2C памяти (и не из промежуточного ОЗУ или кэша!), сам про такие не помню. Знаю лишь про автоматы загрузки прошивки во внутреннюю RAM у FPGA (и редких МК) и про встроенное процессорное ядро в FPGA с возможностью выполнять код напрямую из любой внешней памяти, но для ТС это суперэкзотика.

Tensilica Xtensa (ESP8266, ESP32) имеет 2 режима - либо выполняет код из ПЗУ, подключенного по SPI, либо приходящий из UART, хотя в любом случае код кэшируется внутри.

 Профиль  
                  
 
 Re: Чтение из памяти
Сообщение25.07.2018, 21:08 
Заслуженный участник


20/08/14
11070
Россия, Москва
Corund
Да, хороший пример, спасибо, упустил из виду возможность работы из внешнего SPI ПЗУ.

realeugene в сообщении #1328791 писал(а):
Уже давно практически вся периферия memory-mapped.
Отпадает, то что регистры управления засунуты в память не делает устройство устройством с произвольным доступом. Вот когда будет весь HDD лежать в адресном пространстве как массив байтов без всякой виртуализации и виртуальности - вот тогда и переопределим его как внутреннее устройство.
Пример с LPC хорош, спасибо. Подключенная по ней память архитектурно является внутренним устройством. Клавиатура на ней же - нет (пока вся она не представлена как массив битов/байтов всех клавиш в адресном пространстве).

-- 25.07.2018, 21:11 --

realeugene в сообщении #1328791 писал(а):
Тогда и устройства в расширителе PCIe, вынесенном при помощи оптики метров на пять, тоже являются полным аналогом памяти.
Дело не в размерах, а в протоколах доступа. Архитектурно - да, возможно и внутренние.
А конструктив как я уже сказал в данной теме не интересен.

 Профиль  
                  
 
 Re: Чтение из памяти
Сообщение25.07.2018, 21:18 


27/08/16
9426
Dmitriy40 в сообщении #1328801 писал(а):
Отпадает, то что регистры управления засунуты в память не делает устройство устройством с произвольным доступом.
Нередко на общую шину отмапированы буфера для данных внутри устройств. Та же видеопамять в видеокарте. Кстати, не стоит забывать и про видеобиос, который при старте исполняется тоже напрямую с видеокарты.

Постоянно качать таким образом код, конечно, крайне неэффективно. Но для инициализации системы - в самый раз.

-- 25.07.2018, 21:40 --

Dmitriy40 в сообщении #1328801 писал(а):
Отпадает, то что регистры управления засунуты в память не делает устройство устройством с произвольным доступом. Вот когда будет весь HDD лежать в адресном пространстве как массив байтов без всякой виртуализации и виртуальности - вот тогда и переопределим его как внутреннее устройство.
Тогда и обычная SDRAM не всегда может считаться внутренним устройством.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 43 ]  На страницу Пред.  1, 2, 3  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group