JPH0355918B2 - - Google Patents

Info

Publication number
JPH0355918B2
JPH0355918B2 JP61184387A JP18438786A JPH0355918B2 JP H0355918 B2 JPH0355918 B2 JP H0355918B2 JP 61184387 A JP61184387 A JP 61184387A JP 18438786 A JP18438786 A JP 18438786A JP H0355918 B2 JPH0355918 B2 JP H0355918B2
Authority
JP
Japan
Prior art keywords
code
address
memory
ram
bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP61184387A
Other languages
English (en)
Other versions
JPS6273499A (ja
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed filed Critical
Publication of JPS6273499A publication Critical patent/JPS6273499A/ja
Publication of JPH0355918B2 publication Critical patent/JPH0355918B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/328Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Stored Programmes (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Detection And Correction Of Errors (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は読取り専用メモリに含まれるコードを
訂正(パツチング)するための装置に関する。
〔従来技術〕
読取り専用メモリROMに組込まれたコードま
たはプログラムの制御下で働く全てのプロセツサ
に現われる問題は、コードは一度記憶されると、
設計上の問題や誤動作が起きても変更することが
出来ないので訂正が全く不可能なことである。
この問題に対する既知の解決策はエラーの起き
たROMを訂正されたコードを含む新たなモジユ
ールにより置き換えることである。この解決策は
大量に生産され、多数の顧客に納入される大規模
製造の機械には受け入れられない。
コードを読取り/書込みメモリRAMに書込む
ことも不可能である。何故ならば、この種のメモ
リは低密度であり、さらに読取り専用メモリより
も高価であるからである。
置換されるコードのための訂正(パツチ)メモ
リとしてRAMメモリを用いることは既に知られ
ている。そのような技術はエラーが検出されたと
き訂正されたコードが記憶されるRAMロケーシ
ヨンを指す分岐命令を、コード内の選ばれた場所
にコード設計者が設けることを前提としている。
この解決策を実行するためには、コード設計者は
分岐命令が必要な場所、すなわちエラーが起きる
見込みの大きい場所を選ばねばならない。分岐命
令はたとえエラーがなくても実行されねばならな
いので、そのようなコードの制御下で働く機械の
性能は低下する。
〔発明の概要〕
したがつて、本発明の目的は、エラーが検出さ
れたときプロセツサの性能を損うことなくコード
が訂正できるような方法でマシンの制御コードを
記憶する装置および方法を提供することにある。
本発明の別の目的は上記方法を実行するための
アドレス指定機構を提供することにある。
本発明による装置および方法は次の様に読取り
専用メモリROMおよび読取り/書込みメモリ
RAMにコードを記憶することにある。コードの
大部分をROMメモリに記憶し、n命令毎に1つ
の命令をRAMメモリに記憶する。これを行なう
ため、コードをn個の命令を含むブロツクに仮想
的に分割し、ブロツクの最初の命令をRAMメモ
リに記憶し、さらに以後のn−1個の命令を
ROMメモリに記憶する。このように定義したブ
ロツクの少なくとも1つの命令の実行中に誤動作
が起きたときは、対応する訂正されたブロツクを
RAMに記憶する。エラーのあるブロツクの前の
RAMメモリに置かれた命令を、訂正されたコー
ドを指示する分岐命令に変更する。
命令のkビツトのアドレスを通常通りコード・
アドレス・バス上に与える。nが2の累乗に等し
いときは、k−x個の最上位ビツト(n=2x)が
記憶され、かつROMメモリの代りにRAMメモ
リから実行される命令のアドレスを定義する。
アドレス指定回路はこのアドレス属性を認識し
て、ROMメモリではなくRAMメモリの、コー
ド・アドレスのk−1個の最上位ビツトにより定
義されたロケーシヨンに記憶される命令を取出す
ことができる。
〔実施例〕
第1図に示すように、本発明が実施されている
プロセツサは、アドレス指定回路1を包含してお
り、この回路はメモリ・アドレス・ビツトを発生
し、該ビツトはプロセツシング・ユニツト11か
らコード・アドレス・バス9に与えられたコー
ド・アドレス・ビツトからバス3上のROMメモ
リ5とRAMメモリ7に与えられる。
バス9からのアドレス・ビツトはゲート手段1
3に与えられ、ゲート手段13はメモリ・アドレ
ス・ビツトをバス3に、RAM/ROMメモリ選
択信号を線4に与え、上記メモリ・アドレス・ビ
ツトと選択信号はコード・アドレスのx個の最下
位ビツトの値に応じてRAMメモリ7または
ROMメモリ5をアクセスさせる。
本発明の好適な一実施例では、xを3に等しく
選ぶが、このことは8命令毎に1つの命令を
RAMに記憶し、アドレスの3個の最下位ビツト
を試験することを意味する。それらが0に等しい
ときは、ゲート手段はRAMメモリを選択するた
め作用する選択信号を線4に与え、またバス3
に、RAMメモリの訂正(パツチ)領域が訂正
(パツチ)領域に対する分岐命令の実行によりア
ドレスされるときを除いて所期のRAMロケーシ
ヨンをアクセスするためコード・アドレスのk−
x個の最上位アドレス・ビツトを与える。コー
ド・アドレスのこれら最下位ビツトが0に等しく
ないときは、ゲート手段はROMメモリを選択す
るため作用する選択信号を線4に与え、さらに所
期のROMロケーシヨンをアクセスするためk個
のコード・アドレス・ビツトをバス3に与える。
第1図に概略的に示すように、ROMメモリ5
は命令m1、m2…m7;m9…m15;m17…等を含
んでおり、RAMメモリ7は命令m0、m8;m16
等を含んでいる。したがつて、コードは次のよう
に実行される。RAM7から最初の命令m0、次に
ROM5から7個の命令m1−m7、次にRAM7か
ら命令m8という具合である。
RAMメモリ7は上で定義した命令を含むコー
ド領域と、エラーを含むブロツクを訂正(パツチ
ング)するため用いる訂正(パツチ)領域を有す
る。そのようなブロツクが発見されたときは、通
常RAMメモリに記憶されている命令を含む訂正
されたブロツクを、通常ブロツクの最初の命令を
含むRAMロケーシヨンに見出されるアドレスを
アドレスにおける訂正(パツチ)領域に記憶す
る。このことはこのロケーシヨンの内容を分岐ア
ドレス値に変更することを意味する。したがつ
て、このRAMメモリ・ロケーシヨンがアドレス
されると、訂正(パツチ)領域への分岐が生じ、
エラーを含むROMブロツクの代りに訂正された
命令ブロツクが実行される。
RAM訂正領域に記憶された訂正されたブロツ
クの終りに、通常のコードの実行に戻るよう分岐
命令を記憶する。
分岐アドレスは特定の構成を有する。これは訂
正されたコードをRAMメモリで実行するとき訂
正されたブロツクの終りの分岐命令を実行するま
でバス9上のコード・アドレスのシフトは全く生
じないことを保証するので、訂正(パツチ)領域
をアクセスする時間の間、線4上の選択信号は
RAMを選択するよう作用し、さらにバス3上の
メモリ・アドレス・ビツトはバス9上のコード・
アドレス・ビツトと同じとなる。
第2図はkが13に等しく選ばれ、さらにxが3
に等しい特定の場合においてメモリ・アドレス・
ビツトをバス3に、RAM/ROM選択信号を線
4に発生するアドレス指定回路を示す。当業者は
kおよびxが別の値を有する場合にこの回路を変
更できるであろう。
シフト制御回路20はその出力線22に、
RAMのコード領域内の命令がアクセスさせると
きバス9上のコード・アドレス・ビツトを最下位
ビツトの方にシフトされるように作用するシフト
制御信号を発生する。出力線22上のシフト制御
信号が不作用でなければならないのは、RAMの
訂正(パツチ)領域がアクセスされるとき、すな
わち訂正(パツチ)領域における訂正されたブロ
ツクを指示するためRAMコード領域から読まれ
た分岐命令のデコーデイングによりRAMアドレ
スが与えられるときである。
シフト制御回路20はNANDゲート26を含
み、ゲート26はその入力の3つにバス9からの
コード・アドレスのインバータ21,23,25
により反転された最下位ビツト12,11,10
を受取り、その4番目の入力にRAM7の訂正
(パツチ)領域がアドレスされたとき、(ビツト
0、1=0)にのみ作用する(レベル0)抑止信
号を受取る。したがつて、コード・アドレスの3
個の最下位ビツトが0であるとき、さらに訂正
(パツチ)領域がアドレスされないときは、線2
2上の出力信号は、後述するように、レベル0で
作用し、バス9上のアドレス・ビツトをシフト回
路30においてシフトさせる。
訂正(パツチング)をRAMに実施するとき
は、エラーのブロツクに先行するコードRAMロ
ケーシヨンの内容を、訂正(パツチ)領域ロケー
シヨンを指示する命令に変更する。
訂正(パツチ)領域アドレスではそれらの3個
の最下位ビツトは一瞬の間0になることがあるの
で、線22上のシフト制御信号はそのとき不作用
(レベル1)でなければならない。したがつて、
RAMアドレスが2個の最上位ビツトは常に0で
あり、さらにROMアドレスの2つの最上位ビツ
トの少くとも1つが常に1である本発明の特定の
実施例では、バス9上のコード・アドレスの2個
の最上位ビツトが0であるとき、これは訂正(パ
ツチ)領域に対する分岐命令が実行されることを
意味するが、シフト制御信号をたとえビツト1
2,11および10が0であつても不作用にす
る。バス9上のコード・アドレスの最上位ビツト
0および1をOR回路28に与える。したがつ
て、これらのビツトが0であるときは、NAND
ゲート26の抑止入力にその出力が接続されてい
るOR回路28は線22上のシフト制御信号が作
用するのを防止する。
回路30はANDゲート32,34,36、論
理回路38−0から38−9およびインバータ4
0を含んでいる。
ANDゲート32,34および36の最初の入
力はコード・アドレス・バス9からビツト0,1
および2をそれぞれ受取る。NANDゲート26
の出力線22はこれらANDゲート32,34お
よび36の2番目の入力に接続されるので、シフ
ト制御信号がレベル0において作用するとき、こ
れらのANDゲートはバス3上のメモリ・アドレ
ス・ビツトのビツト0,1,2である0出力信号
を与える。
線22上のシフト信号が不作用である。すなわ
ちレベル1にあるときは、ANDゲートはバス9
上のコード・アドレスのビツト0,1,2をバス
3のメモリ・アドレスのビツト0,1,2として
与える。
回路38−0ないし38−9の各々はバス9上
のコード・アドレスの2つのビツトを受取り、線
22上のシフト制御信号が作用しているか否かに
応じてそれらのビツトの一方または他方をその出
力に与える。例えば、回路38−0はコード・ア
ドレス・バス9からビツト3および0を受取り、
シフト制御信号が不作用のとき(シフト無し)は
ビツト3を、シフト制御信号が作用するときはビ
ツト0をその出力に与える。このことはシフト制
御信号が作用するときバス9上のコード・アドレ
ス・ビツトをメモリ・アドレス・バス3上の最下
位ビツトの方へシフトさせる。
論理回路38−0ないし38−9は2つの
ANDゲート42および44とORゲート46から
なる。例えば、回路38−0では、ANDゲート
42はバス上9上のコード・アドレスのビツト3
およびシフト制御信号を受取り、ANDゲート4
4はバス9からコード・アドレスのビツト0およ
びインバータ40により反転されたシフト制御信
号を受取る。ORゲート46はANDゲート42お
よび44の出力に接続する。したがつて、シフト
制御信号が作用するとき(レベル0)、ANDゲー
ト42の出力は0レベルにあり、ANDゲート4
4はコード・アドレスのビツト0をOR回路46
に与える。したがつてバス3上のメモリ・アドレ
スのビツト3はコード・アドレスのビツト0に等
しい。
シフト制御信号が不作用であるとき、ANDゲ
ート44は0出力信号を与え、ANDゲート42
はコード・アドレスのビツト3をOR回路46に
与える。したがつて、バス3上のメモリ・アドレ
スのビツト3は、コード・アドレスのビツト3に
等しい。
選択回路50はRAM/ROM選択信号をその
出力線4に与える。例えば、この信号はRAMが
選択されるときレベル1に、ROMが選択される
ときレベル0になる。
上記選択回路は2つのANDゲート52および
54とORゲート56を含んでいる。ANDゲート
52の入力はバス9からコード・アドレスのビツ
ト12,11および10を反転したものを受取
り、これらのビツトが0のときに出力信号を1に
するが、これはRAMがアドレスされることを意
味する。ANDゲート54の入力はバス9からイ
ンバータ53および55により反転されたコー
ド・アドレスのビツト0および1を受取り、これ
らのビツトが0のとき出力信号を1にするが、こ
れはRAMメモリ7の訂正(パツチ)領域がアド
レスされることを意味する。
ANDゲート52,54の出力はORゲート56
に与えられ、ORゲート56はしたがつてその出
力4にRAM/ROM選択信号を発生する。
【図面の簡単な説明】
第1図は本発明が実施されているプロセツサの
概略図、第2図は本発明の実施を可能にするアド
レス指定回路の概略図である。 1……アドレス指定回路、2……ゲート手段、
5……読出し専用メモリROM、7……読出し/
書込みメモリRAM、11……プロセツシング・
ユニツト、20……シフト制御回路、30……シ
フト回路。

Claims (1)

    【特許請求の範囲】
  1. 1 プロセツサの制御コードをn個の命令を持つ
    複数のブロツクに仮想的に分割し、各ブロツクの
    最初の命令を読取り/書込みメモリに記憶し、各
    ブロツクの後続のn−1個の命令を読取り専用メ
    モリに記憶し、上記ブロツクにエラーが発見され
    た時、読取り/書込みメモリに記憶されている上
    記ブロツクの最初の命令を訂正されたブロツクが
    記憶される読取り/書込みメモリ内の訂正領域を
    指向する分岐アドレス値を含む分岐命令に置き換
    えること、を特徴とするプロセツサの制御コード
    記憶装置。
JP61184387A 1985-09-24 1986-08-07 プロセツサの制御コ−ド記憶装置 Granted JPS6273499A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP85430033.2 1985-09-24
EP19850430033 EP0215992B1 (en) 1985-09-24 1985-09-24 Method for storing the control code of a processor allowing effective code modification and addressing circuit therefor

Publications (2)

Publication Number Publication Date
JPS6273499A JPS6273499A (ja) 1987-04-04
JPH0355918B2 true JPH0355918B2 (ja) 1991-08-26

Family

ID=8194583

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61184387A Granted JPS6273499A (ja) 1985-09-24 1986-08-07 プロセツサの制御コ−ド記憶装置

Country Status (4)

Country Link
EP (1) EP0215992B1 (ja)
JP (1) JPS6273499A (ja)
CA (1) CA1250665A (ja)
DE (1) DE3581939D1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5321844A (en) * 1990-12-20 1994-06-14 Siemens Aktiengesellschaft Method for error correction of software errors in a communication system
JPH04112913U (ja) * 1991-03-15 1992-10-01 祐二 寺田 暗闇用標識
JPH0764784A (ja) * 1993-08-31 1995-03-10 Nec Corp マイクロコンピュータ
US6105120A (en) * 1997-01-28 2000-08-15 U.S. Philips Corporation Method for implementing multiple format addressing in an embedded microcontroller, a compiler being arranged for implementing the method, and a microcontroller being arranged for using the method and compiler
US8689204B2 (en) 2009-02-28 2014-04-01 Blackberry Limited Methods and tools for creation of read-only-memory software binary images and corresponding software patches

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2256705A5 (ja) * 1973-12-27 1975-07-25 Cii
JPS51144142A (en) * 1975-06-06 1976-12-10 Hitachi Ltd Information processing
DE2813542C3 (de) * 1978-03-29 1980-10-09 Siemens Ag, 1000 Berlin Und 8000 Muenchen Verfahren und Anordnung zur Modifizierung von Adressen für die Speicheransteuerung eines Ein-Chip-Mikrocomputers mit extern erweiterbarem Speicher
DE2854976B2 (de) * 1978-12-20 1980-10-09 Licentia Patent-Verwaltungs-Gmbh, 6000 Frankfurt Verfahren zum korrigierbaren Speichern von Programmen in einem Festspeicher

Also Published As

Publication number Publication date
EP0215992A1 (en) 1987-04-01
DE3581939D1 (de) 1991-04-04
JPS6273499A (ja) 1987-04-04
EP0215992B1 (en) 1991-02-27
CA1250665A (en) 1989-02-28

Similar Documents

Publication Publication Date Title
US4751703A (en) Method for storing the control code of a processor allowing effective code modification and addressing circuit therefor
US4112502A (en) Conditional bypass of error correction for dual memory access time selection
JPH05210595A (ja) メモリシステム
KR870001307B1 (ko) 버퍼 기억장치의 단일 비트 에러처리시스템
US5611042A (en) Data error detection and correction for a shared SRAM
US4446517A (en) Microprogram memory with page addressing and address decode in memory
JPH0412863B2 (ja)
US3992702A (en) Code conversion arrangements for addresses to faulty memory locations
US5369650A (en) Error detection and correction apparatus in a BY-4 RAM Device
JPH0355918B2 (ja)
JPS6342294B2 (ja)
JPS6129024B2 (ja)
US6889306B1 (en) Microprocessor and program modification method in the microprocessor
JPS58213349A (ja) 情報処理装置
KR100216045B1 (ko) 프로그램형 제어기의 비트 연산 처리방법 및 그 장치
JPS6148174B2 (ja)
JPH01194046A (ja) メモリアクセス方式
JP3001464B2 (ja) マイクロプロセッサ装置
JPH04257030A (ja) 読み出し専用メモリパッチ方式
JPH05233470A (ja) アドレス変換装置
JPH01119843A (ja) アドレス変換装置
JPH06250937A (ja) メモリ制御方法、ecc機能付きメモリ制御回路、及び、情報処理装置
JPH0287398A (ja) 記憶装置
JPH05127893A (ja) マイクロプログラム制御方式
JPS61253565A (ja) 記憶装置