i4004 и адресация памяти

Тема в разделе "WASM.BEGINNERS", создана пользователем Scr1pt_, 15 янв 2009.

  1. Scr1pt_

    Scr1pt_ New Member

    Публикаций:
    0
    Регистрация:
    14 мар 2007
    Сообщения:
    34
    Подскажите, пожалуйста, как мог МП i4004 адресовать 640 байт памяти?

    Тем более, что разрядность шины у этого процессора - 4 бита, поэтому по моим расчётам он мог адресовать только 2^4 = 16 байт! (Статья про i4004 на wikipedia.org)

    Да и вообще - 640 - это даже не степень двойки..

    Я тут новенький, не пинайте сразу, объясните, пожалуйста.. Никак понять не могу.
     
  2. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Scr1pt_
    Последовательно.
    Только там шина не совсем 4. Там шина данных 4 она используется для выбора адресса. И еще 4 линии для выбора банка памяти. И еще откудото 1 линия.

    В мануэле написанно 5120.
    Вот описание.
    http://www.piercefuller.com/collect/i4004/index.html
     
  3. Scr1pt_

    Scr1pt_ New Member

    Публикаций:
    0
    Регистрация:
    14 мар 2007
    Сообщения:
    34
    Спасибо за ссылку :)

    5120? Это вообще что такое?..

    Тут немного почитал, вот что смог понять:

    В i4002 (RAM) информация хранится в 4-х регистрах по 80 (20 x 4) бит в каждом. Т.е. всего 80 x 4 = 320 бит. 16 бит в каждом из регистров - системные, они не предназначены для записи в них пользовательских данных. Выборка данных протекает в 2 такта. Первый такт: по 4-разрядной шине данных передаётся 4 бита, старшие 2 бита определяют чип RAM (1 из 4-х), младшие - определяют номер регистра этого чипа, в котором необходимо выполнить чтение или запись (тоже 1 из 4-х). Второй такт: последующие 4 бита уже определяют выборку точного 4-битного слова в ранее выбранном регистре ранее выбранного чипа.

    Исходя из этого, получаем, что i4004 может адресовать: (16 x 4) - в каждом из регистров, ((16 x 4) x 4) - в каждом из чипов i4002, (((16 x 4) x 4) x 4) = 1024 бита = 128 байт - всего.

    Откуда 640?
     
  4. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Scr1pt_
    640байт это 5120 Бит о которых писал выши.
    Один i4002 содержит 320 Бит. Таких банков памити может быть 16. Выбираются они через 4 линии CM-RAM плюс два бита из запроса x2.
    16*320 бит=5120 бит
    Выбор в банке. В нем 4 регистра. они выбираются оставшимися 2 битами x2.
    Следующий запрос x3 определяет один из основных символов их 16(2^4).
    И того 16*(4*16*4)=4096 бит

    Перед выставлением адресса чип запоминает инструкцию. Которая определяет что мы делаем выбираем главный регистр или регистр статуса.
     
  5. Scr1pt_

    Scr1pt_ New Member

    Публикаций:
    0
    Регистрация:
    14 мар 2007
    Сообщения:
    34
    Всё, кажется, дошло :) 2 бита из запроса - 2^2 = 4, плюс к каждой линии CM-RAM по i4002, итого - 4*4 - всего 16 штук. 16 x 320 = 5120 байт. Что и требовалось доказать :)

    Pavia Спасибо большое!