JPS6273499A - プロセツサの制御コ−ド記憶装置 - Google Patents

プロセツサの制御コ−ド記憶装置

Info

Publication number
JPS6273499A
JPS6273499A JP61184387A JP18438786A JPS6273499A JP S6273499 A JPS6273499 A JP S6273499A JP 61184387 A JP61184387 A JP 61184387A JP 18438786 A JP18438786 A JP 18438786A JP S6273499 A JPS6273499 A JP S6273499A
Authority
JP
Japan
Prior art keywords
address
memory
code
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.)
Granted
Application number
JP61184387A
Other languages
English (en)
Other versions
JPH0355918B2 (ja
Inventor
ジヨアキン・ピコン
クレマン・イヴオン・グスタヴ・ポアロ
ダニエル・サボン−ナタンソーン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 by International Business Machines Corp filed Critical International Business Machines Corp
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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04112913U (ja) * 1991-03-15 1992-10-01 祐二 寺田 暗闇用標識

Families Citing this family (4)

* 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
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04112913U (ja) * 1991-03-15 1992-10-01 祐二 寺田 暗闇用標識

Also Published As

Publication number Publication date
EP0215992B1 (en) 1991-02-27
EP0215992A1 (en) 1987-04-01
DE3581939D1 (de) 1991-04-04
JPH0355918B2 (ja) 1991-08-26
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
US4608687A (en) Bit steering apparatus and method for correcting errors in stored data, storing the address of the corrected data and using the address to maintain a correct data condition
EP0213843B1 (en) Digital processor control
US3800294A (en) System for improving the reliability of systems using dirty memories
EP0862761B1 (en) Data error detection and correction for a shared sram
US4059850A (en) Memory system word group priority device with least-recently used criterion
KR870001307B1 (ko) 버퍼 기억장치의 단일 비트 에러처리시스템
US20040078735A1 (en) Flexible method for satisfying complex system error handling requirements via error promotion/demotion
JPS6273499A (ja) プロセツサの制御コ−ド記憶装置
JPH0413735B2 (ja)
JPS6129024B2 (ja)
KR860002027B1 (ko) 키이 기억 에러 처리 시스템
JPH0756640B2 (ja) 記憶装置
JP2733692B2 (ja) Rom装置
KR100216045B1 (ko) 프로그램형 제어기의 비트 연산 처리방법 및 그 장치
JPS58213349A (ja) 情報処理装置
JPH03191450A (ja) メモリーカードの不良チップ代替え回路
JPS6223902B2 (ja)
JP3074897B2 (ja) メモリ回路
JPH05127893A (ja) マイクロプログラム制御方式
JPS5622281A (en) Buffer memory control system
JPS6044709B2 (ja) バツフアリトライ方式
JPH0353660B2 (ja)
JPH02143352A (ja) メモリエラー検出修正方式
JPS61253565A (ja) 記憶装置