СПОСОБ И УСТРОЙСТВО ТЕСТИРОВАНИЯ МНОГОПОРТОВОГО МАССИВА ПАМЯТИ НА СКОРОСТИ
METHOD AND DEVICE FOR SPEED TESTING MULTIPORT MEMORY ARRAY

Область техники
Настоящее раскрытие относится в целом к области процессоров и в частности к способу тестирования многопортовых массивов памяти на рабочей частоте.
Уровень техники
Микропроцессоры осуществляют вычислительные операции в самых разнообразных приложениях. Процессор может играть роль центрального или главного блока обработки в стационарной вычислительной системе, например на сервере или настольном компьютере. Высокая скорость выполнения является основной характеристикой для таких процессоров настольных компьютеров. Кроме того, расширяется применение процессоров в мобильных компьютерах, например портативных компьютерах и карманных персональных компьютерах (КПК), и во встроенных приложениях, например мобильных телефонах, приемниках глобальной системы позиционирования (GPS), портативных клиентах электронной почты и пр. В таких мобильных приложениях, помимо высокой скорости выполнения, желательно обеспечивать низкое энергопотребление и компактные размеры.
Многие программы пишутся из расчета, что компьютер, на котором они выполняются, имеет очень большой (в идеале, неограниченный) объем быстрой памяти. Обычно современные процессоры эмулируют идеальное условие неограниченной быстрой памяти с использованием иерархии типов памяти, каждый из которых имеет соответствующие скоростные и стоимостные характеристики. Типы памяти в иерархии варьируются от очень быстрой и очень дорогой на верхнем уровне, с постепенным переходом к более медленным, но более дешевым типам памяти при переходе на более низкие уровни. Типичная иерархия памяти процессора может содержать регистры (вентили) в процессоре на верхнем уровне; один или несколько блоков кэш-памяти на кристалле, выполненных в виде статической оперативной памяти (SRAM); возможно, внекристальный кэш (SRAM); главную память в виде динамической памяти с произвольным доступом (DRAM); дисковое запоминающее устройство (магнитный носитель с электромеханическим доступом); и ленту или компакт-диск (CD) (магнитный или оптический носитель) на самом низком уровне. Большинство портативных электронных устройств имеют ограниченное, если вообще имеют, дисковое хранилище, вследствие чего главная память, часто ограниченная в объеме, является самым низким уровнем в иерархии памяти.
Высокоскоростные регистры на кристалле образуют верхний уровень иерархии памяти процессора. Дискретные регистры и/или защелки используются в качестве элементов памяти в конвейере выполнения команд. Большинство архитектур на основе набора команд RISC включает в себя набор регистров общего назначения (РОН), которые используются процессором для хранения самых разнообразных данных, например кодов операций для команд, адресов, смещений, операндов, а также промежуточных и конечных результатов арифметических и логических операций и пр.
В некоторых процессорах логические РОН соответствуют физическим элементам памяти. В других процессорах производительность повышается за счет динамического присвоения идентификатора каждого логического РОН одной из ячеек памяти, образующих большой набор, или одному из физических регистров (операция, известная в технике как переименование регистров). В любом случае элементы памяти, доступ к которым осуществляется через идентификаторы логических РОН, можно реализовать не как дискретные регистры, но как ячейки памяти в массиве памяти. Регистры или элементы памяти массива памяти, реализующие логические РОН, являются многопортовыми (многоканальными). Таким образом, несколько разных элементов процессора, например различные каскады конвейера, АЛУ, кэш-память и пр., могут производить в них запись и/или считывать их содержимое.
Тестирование является важной составляющей производства ИС, призванной выявлять и устранять дефектные или некондиционные компоненты. Тестирование массивов памяти сопряжено с особыми трудностями. Способ автоматической генерации тестовых шаблонов (ATPG) предусматривает сканирование шаблона возбуждения в одном наборе регистров или защелок, объединенных в цепочку сканирования, применение шаблона для тестирования произвольной логики, сбор результатов в другом наборе регистров или защелок, объединенных в цепочку сканирования, и сканирование собранных результатов для сравнения с предполагаемыми значениями. Массивы памяти невозможно эффективно тестировать с использованием методов ATPG вследствие промежуточного хранения тестовых шаблонов в массиве.
Массивы памяти в процессоре можно тестировать путем функционального тестирования, в котором в конвейере процессора выполняется код для записи тестовых шаблонов в массив (например, в логические РОН), затем считывать значения и сравнивать их с предполагаемыми значениями. Функциональное тестирование требует много времени и неэффективно, поскольку до выполнения тестов необходимо инициализировать процессор и загружать тестовый код в кэш. Дополнительно, пункт контроля и наблюдения - в конвейере - значительно удален от тестируемых ячеек памяти, и изоляция выявленных дефектов от схем, вносящих помехи, может вызывать затруднения.
Соответственно, многие отвечающие уровню техники процессоры со встроенными массивами памяти включают в себя схему встроенного самотестирования (BIST), которая тестирует массив памяти в режиме тестирования. Контроллер BIST записывает шаблоны данных в массив памяти, считывает шаблоны данных и сравнивает данные чтения с предполагаемыми данными. В функциональном режиме контроллер BIST неактивен, и массив памяти контролируется схемами управления процессора. Системы BIST, отвечающие уровню техники, включают в себя выделенный тестовый порт в массиве памяти для записи и/или чтения в массиве в ходе тестирования. Это налагает ограничение снизу на длительность тестирования за счет ограничения диапазона доступа к памяти; не позволяет тестировать схемы ввода/вывода памяти, включая функциональные порты чтения и записи; и может препятствовать выявлению электрических предельных состояний, которые выявляются только в случае одновременного доступа к массиву через два или более порта.
Сущность изобретения
Согласно одному или более вариантам осуществления многопортовый массив памяти тестируется контроллером BIST путем одновременной записи данных в массив через два или более порта записи и/или одновременного считывания данных из массива через два или более порта чтения, на рабочей частоте процессора. Сравнение данных, считанных из массива, с данными, записанными в массив, можно осуществлять последовательно или параллельно. Компараторные схемы эффективно отключаются в ходе нормальной работы процессора. Путем одновременной записи и/или чтения данных через несколько портов можно выявлять латентные электрические предельные состояния (ограничения), и время тестирования сокращается, по сравнению со способами тестирования, отвечающими уровню техники.
Один вариант осуществления предусматривает способ тестирования массива памяти, имеющего множество портов записи, в процессоре. Первый шаблон данных записывается по первому адресу в массив через первый порт записи. Второй шаблон данных одновременно записывается по второму адресу в массив через второй порт записи. Первый и второй шаблоны данных считываются из массива. Первый и второй шаблоны данных, считанные из массива, сравниваются с первым и вторым шаблонами данных, записанными в массив, соответственно.
Другой вариант осуществления предусматривает способ тестирования массива памяти, имеющего множество портов чтения, в процессоре. Первый шаблон данных записывается по первому адресу в массив. Второй шаблон данных записывается по второму адресу в массив. Первый шаблон данных считывается из массива через первый порт чтения. Второй шаблон данных одновременно считывается из массива через второй порт чтения. Первый и второй шаблоны данных, считанные из массива, сравниваются с первым и вторым шаблонами данных, записанными в массив, соответственно.
Еще один вариант осуществления предусматривает способ тестирования массива памяти в процессоре. Один или несколько заранее определенных шаблонов данных записываются в массив. Шаблоны данных одновременно считываются из массива через два или более порта чтения, что позволяет выявлять электрические предельные состояния в массиве и/или портах чтения, не выявленные путем чтения данных через один порт чтения единовременно.
Еще один вариант осуществления предусматривает процессор. Процессор включает в себя массив памяти, имеющий по меньшей мере один порт записи и множество портов-защелок чтения; первый компаратор данных, имеющий входы для данных чтения и данных сравнения и выводящий индикацию, совпадают ли данные чтения с шаблоном данных сравнения; и первый селектор, избирательно направляющий данные из двух или более первых портов чтения на вход данных чтения первого компаратора. Процессор дополнительно включает в себя контроллер BIST, управляющий портом записи, первыми портами чтения, и первый селектор, выдающий данные записи на порт записи и данные сравнения на вход данных сравнения первого компаратора и принимающий выход первого компаратора. Контроллер BIST способен записывать один или более заранее определенный шаблон данных в массив через порт записи; одновременно считывать записанные данные из массива через два или более первых порта чтения; и последовательно предписывать первому селектору направлять данные из каждого первого порта чтения на первый компаратор, выдавать соответствующие данные сравнения на первый компаратор и проверять массив путем проверки выхода первого компаратора.
Краткое описание чертежей
Фиг.1 - функциональная блок-схема процессора.
Фиг.2 - функциональная блок-схема массива памяти, реализующего многопортовый регистровый файл, и схемы BIST.
Фиг.3 - последовательность операций способа BIST для массива памяти путем одновременной записи тестовых шаблонов через два или более порта записи.
Фиг.4 - последовательность операций способа BIST для массива памяти путем одновременного считывания тестовых шаблонов через два или более порта чтения.
Подробное описание
На фиг.1 показана функциональная блок-схема процессора 10. Процессор 10 выполняет команды в конвейере 12 выполнения команд согласно логике управления 14. Конвейер 12 может иметь суперскалярную структуру, имеющую несколько параллельных конвейеров, например, 12a и 12b. Конвейеры 12a, 12b включают в себя различные регистры или защелки 16, организованные в каскады конвейера, и одно или несколько арифметико-логических устройств (АЛУ) 18. Массив памяти 20 обеспечивает множество ячеек памяти, которые отображаются в логические регистры общего назначения (РОН).
Конвейеры 12a, 12b извлекают команды из командного кэша (I-кэш) 22, при этом управление адресацией памяти и правами доступа осуществляется буфером предыстории трансляций на стороне команд (ITLB) 24. Доступ к данным осуществляется из кэша данных (D-кэш) 26, при этом управление адресацией памяти и правами доступа осуществляется главным буфером предыстории трансляций (TLB) 28. В различных вариантах осуществления ITLB может содержать копию части TLB. Альтернативно, ITLB и TLB могут быть объединены. Аналогично, в различных вариантах осуществления процессора 10, I-кэш 22 и D-кэш 26 могут быть объединены или интегрированы. Промахи в I-кэше 22 и/или D-кэше 26 обуславливают обращение к главной (внекристальной) памяти 32, под управлением интерфейса 30 памяти. Процессор 10 может включать в себя интерфейс ввода/вывода 34, управляющий доступом к различным периферийным устройствам 36. Специалистам в данной области техники очевидно, что возможны многочисленные разновидности процессора 10. Например, процессор 10 может включать в себя кэш второго уровня (L2) для любого из I- и D-кэшей или обоих. Кроме того, один или несколько функциональных блоков, показанных в процессоре 10, может быть исключен из конкретного варианта осуществления.
На фиг.2 показан многопортовый массив памяти 20, реализующий набор логических РОН, и контроллер встроенного самотестирования (BIST) 40. Массив памяти 20 организован в виде 16 ячеек по 128 битов, хотя раскрытые здесь способ и устройство тестирования применимы к любой конфигурации многопортовой памяти. Каждая 128-битовая ячейка в массиве памяти 20 является пословно считываемой, и массив 20 логически и физически сегментирован по границам слова (32 бита). Совместно используемая схема предварительной зарядки и распределения питания располагается ниже центра массива памяти 20.
Конкретный массив памяти 20, показанный на фиг.2, включает в себя три порта записи 42 и пять портов чтения 44, при этом три порта чтения 44 расположены на одной стороне массива памяти 20, и два порта чтения 44 расположены на другой стороне. Это лишь иллюстративная конфигурация. Три порта чтения 44, обозначенные A, B и C, подключены к селекторной схеме 46, например мультиплексору. Контроллер BIST 20 предписывает селектору 46 посредством сигнала управления 56 направлять данные, считанные из массива памяти 20 через один из портов чтения 44 A, B или C, на вход данных компаратора 48. Контроллер BIST дополнительно выдает шаблоны данных на вход сравнения компаратора 48 по сигнальной линии 58. Данные, считанные через порты чтения 44 D и E, аналогично направляются через селектор 50 на второй компаратор 52, при этом контроллер BIST 40 управляет селектором 50 и выдает данные сравнения на компаратор 52. Выходы компараторов 48, 52 поступают на контроллер BIST 40 по сигнальным линиям 60.
В режиме тестирования контроллер BIST 40 записывает фоновый шаблон данных в массив памяти 20 через порты записи 42 A, B и/или C. Затем контроллер BIST 40 записывает тестовые шаблоны данных в одну или несколько ячеек памяти массива памяти 20 через порты записи 42 A, B и/или C. В по меньшей мере некоторых тестах контроллер BIST 40 записывает тестовые шаблоны данных через все три порта записи 40 одновременно для выявления электрических предельных состояний в массиве памяти 20, которые могут не проявляться при записи данных через только один порт записи 42 единовременно.
Затем контроллер BIST 40 считывает одновременно тестовые шаблоны данных из массива памяти 20 через по меньшей мере два порта чтения 44. Для максимального нагружения массива памяти 20 и выявления любых латентных электрических предельных состояний, и дополнительно для минимизации времени тестирования, контроллер BIST 40 одновременно считывает данные через все доступные порты чтения 44 (то есть все пять портов чтения 44 согласно варианту осуществления, показанному на фиг.2). Затем контроллер BIST 40 последовательно направляет данные из каждого порта чтения 44 на компаратор 48, 52, одновременно подавая на компаратор 48, 52 соответствующий предполагаемый шаблон данных, и исследует выходной сигнал компаратора 48, 52, чтобы удостовериться в том, что из массива памяти 20 считан правильный шаблон данных. Поскольку контроллер BIST 40 располагается на компоненте процессора 10, все тестирование осуществляется "на скорости", то есть на рабочей частоте процессора 10.
Согласно варианту осуществления, показанному на фиг.2, в одном тесте контроллер BIST 40 максимально нагружает массив памяти 20 и минимизирует время тестирования путем одновременного считывания тестовых шаблонов через все пять портов 44 чтения. Затем данные из портов 44 A и D чтения одновременно направляются на соответствующий компаратор 48, 52, обеспечиваются соответствующие шаблоны сравнения, и выходные сигналы компаратора проверяются. В следующем цикле данные из портов чтения 44 B и E одновременно проверяются. Наконец, данные из порта чтения 44 C проверяются на компараторе 48. Одновременное считывание данных из массива памяти 20 через все пять портов чтения 44 нагружает массив памяти 20 для выявления латентных электрических предельных состояний. Использование двух компараторов 48, 52 для одновременной проверки данных чтения из двух портов чтения 44 минимизирует время тестирования.
Специалистам в данной области техники очевидно, что количество компараторов 48, 52 можно увеличить, чтобы еще больше сократить время тестирования за счет параллельного осуществления сравнения данных. Время тестирования можно минимизировать, обеспечив компаратор 48, 52 для каждого порта чтения 44 (очевидно, необходим селектор 46, 50). Однако при этом увеличивается площадь кремния, и может происходить перегрузка записи для схем тестирования, которые неактивны в ходе нормальной работы процессора. В другом предельном случае можно обеспечить один компаратор 48, 50, при этом данные из всех портов чтения 44 поступают на него через один селектор 46, 50. Это позволяет минимизировать схему тестирования, но при этом налагается ограничение снизу на длительность тестирования, поскольку каждое слово в массиве памяти 20 нужно сравнивать последовательно. Однако, даже с одним компаратором 48, 52, массив памяти 20 можно тестировать более тщательно и реалистически, чем позволяют методы тестирования согласно уровню техники, благодаря одновременному считыванию данных через два или более (и вплоть до всех возможных) порта чтения 44.
Раскрытые здесь устройство и способ тестирования дополнительно позволяют осуществлять более детальную диагностику, чем системы тестирования, отвечающие уровню техники, многие из которых ограничиваются минимальным тестом работоспособности (то есть определением годен/не годен). Контроллер BIST 40 может минимизировать время тестирования путем одновременной записи тестовых шаблонов данных в три разные ячейки памяти через три порта записи 42 и одновременного считывания данных из пяти разных ячеек памяти через пять портов чтения 44. Альтернативно, контроллер BIST 40 может нагружать отдельные ячейки памяти (и соответствующие схемы ввода/вывода) путем записи данных и/или чтения данных в/из одну/ой ячейку/и памяти с использованием всех доступных соответствующих портов.
Способ тестирования полностью применим к любому массиву памяти, имеющему два или более порта записи 42 и/или два или более порта чтения 44. На фиг.3 показан способ BIST для массива памяти, имеющего по меньшей мере два порта записи 42, независимо от количества портов чтения 44 или компараторов 48, 52. Фоновый шаблон записывается в по меньшей мере первый и второй адреса в массив памяти 20 через один или несколько портов записи (этап 60). Первый шаблон данных записывается по первому адресу в массив 20 через первый порт записи 42 (этап 62). Одновременно второй шаблон данных записывается по второму адресу в массив 20 через второй порт записи 42 (этап 64). Первый и второй шаблоны данных могут быть одинаковыми или разными. Аналогично, первый и второй адреса могут указывать соседние или далеко разнесенные ячейки памяти. Первый и второй шаблоны данных считываются из массива 20 (этап 66). При наличии нескольких портов чтения 44 операции чтения данных можно осуществлять одновременно; альтернативно, операции чтения можно осуществлять последовательно с использованием одного порта чтения 44. Каждый из первого и второго шаблонов данных, считанных из массива 20, сравнивается с соответствующим шаблоном данных, записанным в массив 20 (этап 68). Если шаблоны данных совпадают (этап 70) и не все адреса протестированы (этап 71), адреса изменяются (этап 72), и тестирование продолжается. Если шаблоны данных совпадают (этап 70) и все адреса протестированы (этап 71), BIST завершается (этап 73). Если шаблоны данных не совпадают (этап 70), обозначается ошибка (этап 74), что может указывать на необходимость дополнительного тестирования или на дефект массива памяти 20 и/или соответствующего порта записи 42 и/или порта(ов) чтения 44.
На фиг.4 показан способ BIST для массива памяти, имеющего по меньшей мере два порта чтения 44, независимо от количества портов записи 42 или компараторов 48, 52. Фоновый шаблон предпочтительно записывается в по меньшей мере первый и второй адреса в массив памяти 20 (этап 80). Первый шаблон данных записывается по первому адресу в массив 20 (этап 82), и второй шаблон данных записывается по второму адресу в массив 20 (этап 84). При наличии нескольких портов записи 42 первый и второй шаблоны данных можно записывать одновременно; в противном случае их можно записывать последовательно через один порт записи 42. Первый и второй шаблоны данных могут быть одинаковыми или разными, и первый и второй адреса могут быть соседними или далеко разнесенными. Первый шаблон данных считывается из массива 20 через первый порт чтения 44 (этап 86). Одновременно второй шаблон данных считывается из массива 20 через второй порт чтения 44 (этап 88). Каждый из первого и второго шаблонов данных, считанных из массива 20, сравнивается с соответствующим шаблоном данных, записанным в массив 20 (этап 90). При наличии более одного компаратора сравнения можно осуществлять параллельно; альтернативно, их можно осуществлять последовательно. Если шаблоны данных совпадают (этап 92) и не все адреса протестированы (этап 93), адреса изменяются (этап 94), и тестирование продолжается. Если шаблоны данных совпадают (этап 92) и все адреса протестированы (этап 93), BIST завершается (этап 95). Если шаблоны данных не совпадают (этап 92), обозначается ошибка (этап 96).
Согласно фиг.2 компараторные схемы 48, 52 содержат статические логические вентили. Таким образом, компаратор 48, 52 будет сравнивать любой шаблон данных, поступающий на его вход данных, с данными, поступающими на его вход сравнения, и будет генерировать сигнал, указывающий, совпадают ли шаблоны данных. В ходе нормальной работы процессора (то есть не в режиме тестирования) данные, выводимые через порты чтения 44, будут постоянно изменяться. Если по меньшей мере один порт чтения 44 подключен к входу данных компаратора 48, 52 через селектор 46, 50, логические вентили в компараторе 48, 52 будут постоянно переключаться, потребляя энергию, вырабатывая тепло и внося свой вклад в электрический шум на шинах питания и заземления.
Соответственно, компараторные схемы 48, 50 эффективно отключаются в ходе нормальной работы, когда определено, что на входе данных компаратора 48, 52 присутствует постоянный шаблон данных. Один вход каждого селектора 46, 50 подключен к постоянному шаблону данных, например заземлению (как показано на фиг.2), хотя можно использовать любой шаблон данных. После перезапуска системы (или в соответствии с любым другим указателем режима нормальной работы процессора) контроллер BIST 40 предписывает селектору 46, 52 выбрать фиксированный шаблон данных. В результате статический шаблон данных поступает на вход данных компараторов 48, 52. Контроллер BIST 40 может в необязательном порядке подавать соответствующий статический шаблон данных на вход сравнения компараторов 48, 52. Вне зависимости от того, указывает ли выход компаратора 48, 52 совпадение или несовпадение данных, поскольку входные сигналы являются статическими, вентили компаратора 48, 52 не будут переключаться после начального одноциклового сравнения.
Многочисленные латентные электрические предельные состояния можно выявлять путем одновременной записи шаблонов данных через два или более порта записи 42 и/или путем одновременного считывания шаблонов данных через два или более порта чтения 44. Способы тестирования, отвечающие уровню техники, совершенно неспособны выявлять эти предельные состояния. При одновременной записи шаблонов данных через два или более порта записи 42 одновременно запускается несколько драйверов записи. Это нагружает электросеть, что позволяет выявлять предельные состояния. Кроме того, можно выявлять шумовую связь между "тихой" и "переключающейся" разрядными шинами.
Одновременное считывание шаблонов данных через два или более порта чтения 44 позволяет выявлять предельные состояния электросети благодаря одновременному включению множества предварительных зарядных устройств. Аналогично, множество разрядных шин чтения разряжаются одновременно, что также позволяет выявлять предельные состояния электросети. Предельные состояния электросети также можно выявлять, одновременно включая множественные глобальные и/или локальные числовые шины. Шумовую связь между "тихой" и "переключающейся" разрядными шинами можно выявлять, одновременно разряжая несколько разрядных шин чтения. Кроме того, несколько выходов защелок данных чтения переключаются одновременно, обуславливая связь на длинных неэкранированных цепях. Этот шум приводит к удалению задержки, которое позволяет выявлять предельные состояния шума и/или тактирования.
Хотя настоящее раскрытие описано здесь в отношении конкретных признаков, аспектов и вариантов осуществления изобретения, очевидно, что многочисленные вариации, модификации и другие варианты осуществления допустимы в широком объеме настоящего раскрытия, и, соответственно, все вариации, модификации и варианты осуществления следует рассматривать как соответствующие объему раскрытия. Поэтому настоящие варианты осуществления следует рассматривать во всех отношениях как иллюстративные и неограничительные, и допустимы любые изменения, происходящие в рамках смысла и объема эквивалентности прилагаемой формулы изобретения.