Test CPU

Использование и разработка софта (преимущественно на ПЦ)

Moderator: Shaos

User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Test CPU

Post by Lavr »

Что-то я тут озадачился вопросом: а как пишутся тесты процессора?

Ну, смутно и примерно я догадываюсь, что сначала надо как-то простые и очевидные инстукции
проверить, хотя не совсем понятно как...
Потом - проверенными инструкциями тестировать основной набор, добавляя в оборот вновь протестированные...
Как - то так, возможно...

Разыскал я популярные тесты для i8080:
Kelly Smith test _ MICROCOSM ASSOCIATES 8080/8085 CPU DIAGNOSTIC VERSION 1.0 (C) 1980
DIAGNOSTICS II V1.2 - CPU TEST COPYRIGHT (C) 1981 - SUPERSOFT ASSOCIATES и
8080 CPU exerciser

Смотрю, к примеру, в Kelly Smith test:
;************************************************************
; 8080/8085 CPU TEST/DIAGNOSTIC
;************************************************************
;
;NOTE: (1) PROGRAM ASSUMES "CALL",AND "LXI SP" INSTRUCTIONS WORK!
;
А кто же мне дал такую гарантию, что инструкции "CALL" и "LXI SP" работают? :o

Опять же BIOS в процедуре POST как-то тестирует процессор...
Что-бы понятное почитать на эту тему?

Я настойчиво порыл интернет по сабжу, но он густо забит "стресс-тестами" для современных CPU... :-?
iLavr
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Test CPU

Post by Shaos »

дык для 8080 только эксесайзер и есть - его много у нас где применяли

суть как я понял в том, что чото считается, получается некое магическое число, которое сравнивается с эталоном - и так много раз по разным поводам

P.S. у RISC-V вон тоже куча тестов примерно также и написаны
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Test CPU

Post by Lavr »

Shaos wrote:дык для 8080 только эксесайзер и есть - его много у нас где применяли
8080 эксесайзер для тестирования CPU, собственно, подходит меньше всего.
8080 эксесайзер предназначен скорее для тестирования эмуляторов на соответствие
реальному i8080.
Суть его в том, что на реальном i8080 вычислялось "некое магическое число", по сути - CRC,
контрольная сумма.
С этой CRC сверяется потом тестируемый процессор.

Но мне такой алгоритм не подходит, я собираюсь написать Test CPU для 4-bit-CPU, а эталонного
варианта этого процессора у меня нет.

Так что меня интересует в принципе вопрос, как написать Test CPU, поэтому я набрал исходников
для понятного нам i8080, и пытаюсь что-то из них выудить.

Есть у меня ещё исходники Klaus Dormann Functional Test for the NMOS 6502 но он не подходит,
поскольку самомодифицируемый и должен работать строго в ОЗУ, а у меня - ПЗУ программы.
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Test CPU

Post by Lavr »

Покопался я вот здесь: 6502 Test Programs, и хотя там многие ссылки протухли, к сожалению,
но, как мне кажется, один неплохой исходничек функционального теста CPU я вроде нашел:
TTL6502.ASM
По крайней мере, мне понравилось как там всё начинается, и основная идея в общем-то похожа
на то, что я написал в старте топика.

Попробую от этого варианта оттолкнуться, всё же 6502 попроще, нежели i8080.
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Re: Test CPU

Post by shoorick »

к Б3-34 в инструкции была тестовая последовательность операций - я ее в магазине при покупке полностью выполнил: шутка ли, 85р. в 1984 году! пол-часа заняло, не менее!
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Test CPU

Post by Lavr »

shoorick wrote:к Б3-34 в инструкции была тестовая последовательность операций
Собственно, тестовые программы обычно есть для практически всех программируемых девайсов.
Другое дело, что я сам их никогда не писал и не имею такого опыта...
Что-то требуется взять за образец, до этого я только в пошаговом режиме всё проверял.
Но это очень нудно и трудоёмко... :-?
iLavr