JPH10510652A - 固定したプログラムを修正できるようにする方法および装置 - Google Patents

固定したプログラムを修正できるようにする方法および装置

Info

Publication number
JPH10510652A
JPH10510652A JP9538639A JP53863997A JPH10510652A JP H10510652 A JPH10510652 A JP H10510652A JP 9538639 A JP9538639 A JP 9538639A JP 53863997 A JP53863997 A JP 53863997A JP H10510652 A JPH10510652 A JP H10510652A
Authority
JP
Japan
Prior art keywords
code
address
orientation
memory
field
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
JP9538639A
Other languages
English (en)
Other versions
JP3592335B2 (ja
Inventor
ナソール,アザダリ
Original Assignee
セー・ペー・8・トランザツク
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 セー・ペー・8・トランザツク filed Critical セー・ペー・8・トランザツク
Publication of JPH10510652A publication Critical patent/JPH10510652A/ja
Application granted granted Critical
Publication of JP3592335B2 publication Critical patent/JP3592335B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/355Personalisation of cards for use
    • G06Q20/3552Downloading or loading of personalisation data

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Storage Device Security (AREA)
  • Communication Control (AREA)
  • Circuits Of Receivers In General (AREA)

Abstract

(57)【要約】 本発明は、コード列を実行できる集積回路(10)と、一方では、主プログラムと場合によっては当該集積回路で実行できるその他のコード列が入っている第一のメモリ(12)、また他方では、場合によっては当該集積回路で実行できるコード列が入っている第二のプログラマブル非揮発性メモリ(11)、および、第三のワーキングメモリ(14)を備える回路基板内のコード列実行装置であって、第二のメモリ(11)に入っているオリエンテーションテーブルが、コード基準データのあるフィールドを少なくとも一つ含み、第一の手段(INS_INT)により、− コード基準の有無を検証でき、− コード基準に関連付けられたアドレスデータをワーキングメモリに記憶させて、トラップフラグDIを位置決めすることができ、第二の手段(INS_ORT)により、− トラップフラグDIをテストすることができ、− ワーキングメモリAD_SAUTの内容でポイントされたアドレスにジャンプを行うことができることを特徴とする装置に関するものである。

Description

【発明の詳細な説明】固定したプログラムを修正できるようにする方法および装置 本発明は、コンピュータプログラム、とりわけマイクロ回路基板に組み込まれ たプログラム、さらに一般的に言えば、少なくとも一つの中央処理装置、プログ ラム読取り専用メモリ、プログラマブル非揮発性メモリ、およびワーキングメモ リを含む集積回路を備えた携帯用電子装置に関するものである。前述の非揮発性 メモリは、データとコードを格納することができ、また中央処理装置はそれ自体 で、このコードを実行させることができる。 この電子装置においては、非常に異なる二種類のプログラム、すなわち製造か らすでに集積回路に書き込まれた変更不能なプログラムと、必要に応じて電子装 置の通常利用中に外部から導入されるプログラムを併存させることが今日まで知 られている。 今日、マイクロ回路基板は、技術的に、多くの要求を満たすことができる。し かしながら、「マスク」、言い換えればROMメモリに入っているプログラムを 実現することは、まだ非常に高くつき、このような投資は、数千ものプリント板 を購入したいと思っている多数の「小規模」クライアントの気力を 失わせるものである。その解決法として、現行マスクを利用して、クライアント が求める機能をプログラマブルメモリに付加する方法がある。 追加コードをプログラマブルメモリに入れて実行できるようにすると、新規機 能を現行プログラムに容易に付加することができるか、あるいは、このプログラ ムを特定の要求に合わせられるという利点が与えられる。 フランス特許第2655170号は、コード列を非揮発性メモリに記録できる 携帯用電子装置を記載している。このプログラマブル非揮発性メモリは、コード 列を入れるために形成された特別の部分を含み、この部分はそれ自体、フラグエ リア、コード列データエリア、ブロック検査文字エリアに分けられる。読取り専 用メモリのブログラムでテスト命令を実行して、フラグエリアを読み取ってテス トし、また好ましい場合にはジャンプを行う。従って、各ジャンプには、一つの テスト命令と、プログラマブルメモリに割り当てられた一つの記憶域が対応する 必要がある。 さらに、フランス特許出願第2667417号により、プログラマブルメモリ に複数のプログラムを入れるように設計され たマイクロプロセッサボードも知られており、このボードでは、いわゆるフィル タ命令をプログラマブルメモリの予約記憶位置のそれぞれに関連付けて、当該ボ ードの読取り専用メモリに記憶させたフィルタ命令の実行により、アクセス可能 な命令サブルーチンのコードのアドレスを記憶する手段を構成している。各フィ ルタ命令は、プログラマブルメモリにおいて、関連コードのアドレスが入ってい る記憶域のアドレスを知らなければならず、一回限り固定したアクセス階層がぜ ひ必要となる。 上で言及した二つの解決法は、以下のような不都合がある。 いくつかのジャンプ命令を実行したいと思う当業者は、読取り専用メモリのプ ログラムやプログラマブルメモリの指定領域へのジャンプ命令を増やさなければ ならない。この種の多数の命令を主プログラムに導入しなければならない場合に は、これらの命令が読取り専用メモリで占有する総スペースが、プログラムの総 スペースを犠牲にして大きくなる。その上、プログラマブル非揮発性メモリでは 、たとえサブルーチンが記録されてなくても、そのスペースは、フラグのスペー スと同様に確保され、従って、無視できないスペースが不必要に占有される。結 局、いったん書き込まれると、当該サブルーチンは、もう変更 することはできない。要するに、この解決法は、非常に限られた数のジャンプ命 令や、いくつかのサブルーチンに適しており、いかなる場合にも、ジャンプとサ ブルーチンの数が多いという問題が解決されていない。 本発明は、とりわけサブルーチンへの呼出し回数をさらに多くさせることで、 言及された特許の不都合もなく、チップカードの機能を向上させることができる 方法および装置を対象としている。というのも、本発明による装置を用いれば、 プログラムでの利用が容易となるか、ほとんどコードメモリを使用しないか、利 用するメモリサイズが最小限に抑えられ、あるいは、ダイナミックであらゆる種 類の変更ができ、あるいは、実行時間ガ最適化されるという利点が与えられるか らである。 そうするために、回路基板内のコード列実行装置は、コード列を実行できる集 積回路と、一方では、主プログラムと場合によっては当該集積回路で実行できる その他のコード列が入っている第一のメモリと、また他方では、場合によっては 当該集積回路で実行できるコード列が入っている第二のプログラマブル非揮発性 メモリと、第三のワーキングメモリとを備えており、第二のメモリに入っている オリエンテーションテーブルが、コ ード基準データのあるフィールドを少なくとも一つ含み、 第一の手段(INS_INT)により、 − コード基準の有無を検証でき、 − コード基準に関連付けられたアドレスデータをワーキングメモリに記憶させ て、トラップフラグDIを位置決めすることができ、 第二の手段(INS_ORT)により、 − トラップフラグDIをテストすることができ、 − このワーキングメモリの内容でポイントされたアドレスにジャンプを行うこ とができることを特徴とする。 別の特徴によれば、コード基準に関連付けられた、三つのメモリの一つに入っ ているコード列のアドレスデータが、そのコード基準から計算される。 別の特徴によれば、第二のフィールドは、三つのメモリの一つに入っているコ ード列のアドレスデータを含む。 別の特徴によれば、この装置は、プログラマブルメモリのうち場合によっては 保護される領域に、第一のアドレスと、場合によっては第一の検証手段用のサー チ方向とを規定する情報を含む。 別の特徴によれば、このオリエンテーションテーブルは、テーブル中の次のコ ード基準に対応する情報がある次のアドレスを示す追加フィールドを含む。 別の特徴によれば、このオリエンテーションテーブルは、チェックサムの計算 手段により提供された結果と比較することで、前のフィールドおよび/または関 連付けられたコード列の完全性を確認できる追加フィールドを含む。 別の特徴によれば、第二の手段は、同一の系列アドレスに向けてジャンプを実 行する目的で第二の手段がいくつか自由に使用できる時、ジャンプ後に、戻りア ドレスをワーキングメモリに記憶する手段を含む。 別の特徴によれば、この装置は、追加コードを記録させないようにする手段C AIと、チップカードの再生を妨げる手段RCIを含む。 別の目的は、新規機能の記録方法を提案することにある。 この目的は、前記請求の範囲の一つに記載の装置で新規コードを記録する方法 が、 − 記録コマンドを受け取るステップと、 − コード基準A、B、C、...を構成する第一のフィール ドと、当該コード基準に関連付けられたアドレスを示す第二のフィールドAD_ Cod_A、AD_Cod_B、AD_Cod_C、...の有無を検証するス テップと、 − オリエンテーションテーブルのアドレスAD_TABを構成する第一のアド レスの値が一貫していることを確かめるステップと、 − フラグECAが使用中でないことを確かめるステップと、 − 第一のフィールドで提供されるコード基準がテーブルにないことをチェック するステップと、 − 使用中の状態で、プログラマブルメモリのうちの保護される領域にフラグE CAをセットするステップと、 − 新規コードに対応する情報を受け取って書き込むステップと、 − この動作が正確に行われたことを確かめ、オリエンテーションテーブルを更 新するステップと、 − 休止中の状態で、フラグECAをセットするステップと を含むことを特徴とすることによって達成される。 別の特徴によれば、オリエンテーションテーブルの更新操作は、書き込まれた コードの前にくるコードのオリエンテーショ ンワードに対応するアドレスに、オリエンテーションテーブル内の次のアドレス のフィールドを書き込むことを含む。 本発明のその他の特徴と利点は、下記の図を用いて例示する装置および方法の 実施例に関する下記の説明を読めば、さらに明確となろう。この添付図面におい て、 − 第1図は、オリエンテーションテーブルの管理法の変形例を利用したチッ プカードのプログラマブルメモリのパーティションを示す。 − 第2図は、チップカードの読取り専用メモリのパーティションの一例を示 す。 − 第3図は、主プログラムの期間中に実行される問合せ命令シーケンスの例 と、その後で、オリエンテーション命令シーケンスの例を、主プログラム中に示 す。 − 第4図は、問合せ命令とオリエンテーション命令について考えられるシー ケンス例を示す。 − 第5図は、問合せ命令を構成するコード列の展開アルゴリズム例を示す。 − 第6図は、オリエンテーションテーブルとコード列エリアを組み入れたプ ログラマブルメモリのパーティションの構成 例を示す。 − 第7図は、オリエンテーションテーブルとコード列エリアを組み入れたメ モリのパーティションの第二の実施例を示す。 − 第8図は、オリエンテーション命令を構成するコード列の展開フローチャ ート例を示す。 − 第9図は、ある系列の書込み命令の構成フィールドの一例を示す。 − 第10図は、書込み命令で開始する記録列の展開フローチャートを示す。 − 第11図は、本発明の装置および方法の実施に必要なマイクロ回路基板の 構成要素を示す。 本発明は、第11図によるマイクロプロセッサボードで下記の適用例を説明す れば、さらに良く理解されよう。 マイクロプロセッサボードは、命令列を実行できるマイクロプロセッサ型また は集積回路式の中央処理装置(10)、RAMワーキングメモリ(14)、主プ ログラムが入っているROM非揮発性メモリ(12)、データが入っていてCP Uで実行でき、かつ、プログラム可能なEPROMか、EEPROMか、または 、FRAMの非揮発性メモリ(11)、および、接触が あるか、または接触のないリンク(15)で読取り装置と対話できる入出力装置 (13)を有する。このプログラムは、構成部品の製造時にROMに焼き付けて おり、従って、その内容を後で変更できない。 プログラマブルメモリ(11)は、第1図に示される通り、いくつかの部分に 分けられる。システムエリアと記された第一の部分(110)は、当該メモリの その他の部分に入っている情報またはデータグループの妥当性(真実性および/ または完全性)と位置決定を検査できるシステム情報であって、外部からは読み 取れないもの(ポインタなど)を含む。データエリアと記された第二の部分(1 11)は、外部からアクセスでき、ユーザデータの格納に使用される。オリエン テーションテーブルと記された第三の部分(112)は、オリエンテーションテ ーブルが入っており、このテーブルは同一の要素で形成され、各要素はいくつか のフィールドを含み、それらのフィールドのうち二つの主要フィールド、すなわ ち、第一のフィールドは「A」、「B」などのコード基準データであり、また第 二のフィールドは、「AD_Cod_A」、「AD_Cod_B」などのように 当該メモリの第四の部分(113)に記憶させた対 応するコード列の開始アドレスである。コード列エリアと記された第四のエリア は、主プログラムで呼び出されるコード列を含む。本発明の変形例では、オリエ ンテーションテーブルまたはコード列をEEPROMの代わりにワーキングメモ リ(RAM)にロードできることに注目すべきである。 AD_TABと呼ばれるオリエンテーションテーブルの開始アドレスはシステ ムエリアに記憶され、またSENSと記された第二の情報は、上昇するアドレス の方向であれ、下降するアドレスの方向であれ、ポインタがこのテーブルを読み 取る方向を決定する。従って、AD_TABとSENSの値のアドレスは、RO Mのプログラムが知っている本発明に関するデータでしかない。さらに、バイト で表したサイズ、あるいは、オリエンテーションテーブルの最大の要素数(Ta 、Ta)を記憶させると役立つ場合もある。 ここに、本発明に従ったトラップ法のメリットを例証した一例がある。主プロ グラムは、情報の暗号化/解読、または、いくつかの認証機能を実行できるD. E.S.(Data Encryption standard,データ暗号化規格)のようなアルゴリズ ムを含むことができる。このアルゴリズムを別のアルゴリズムと取り替え るか、あるいは、そのインプリメンテーションを完全に変更して、例えば、もっ と高速なものに移行することは興味深いと言える。このアルゴリズムのコードは 、オペレーティングシステムのROMメモリの中にブロックを構成しており、こ のコードは変更できず、さらに主プログラムの様々な場所から呼び出すことがで きる。 この例は、第2図を見れば、さらによくわかる。とりわけ主プログラムを含む ROMメモリは、三つの部分に分けられる。第一の部分は、通電後のチップカー ドの初期設定、すなわちワーキングメモリのテスト、チップカードの状態の読取 り、RESETに対する応答のバイトの送出を行う。第二の部分は、端末で要求 される様々なコマンド実行するアプリケーションプログラムを含む(第一のコー ド部分は、つねに第二のコード部分の前に実行される)。第一部と第二部は主プ ログラムを含む。第三の部分は、後で説明する役割を果たす「アイドル」コード を含む。 動作を変更したいと思うALGO_1と呼ばれるアルゴリズムは、アプリケー ション部分に入っている。この例では、当該アルゴリズムは、コードの五つの異 なる場所から呼び出される。 この新規アルゴリズムは、プログラマブルメモリ内のコード列エリアにあらかじ めロードされており、オリエンテーションテーブルが更新されており、そのコー ド列の実行アドレスは、AD_Cod_Aである。 通電時に、主プログラムは初期設定部を実行し、この部分には「APPEL_ 0」と記されるALGO_1への第一のジャンプが認められ、また、いかなるト ラップも予定されず、従って、このジャンプは、いかなるトラップ命令でも左右 されない。そこには、問合せ命令列、すなわち、アプリケーション部のプログラ ムの実行前に少なくとも一度、必ず実行するようにプログラマが初期設定部に入 念に実現したINS_INT_Aも認められる。この例では、この問合せ命令列 に関連付けられたコード基準は「A」であり、これは主プログラムに書き込まれ ている。初めのうちは、この問合せ命令は、システムエリア内でオリエンテーシ ョンテーブルのアドレスAD_TABを探す。次に、このアドレスから、「SE NS」の値に従って上昇するアドレスの方向か、あるいは、下降するアドレスの 方向に、当該テーブルの各要素を読み取る。コード基準に対応する第一のフィー ルドの値と、「A」の値とを比較する。「A」の値がオ リエンテーションテーブルの第一のフィールドにある場合、対応する第二のフィ ールドの値(AD_Cod_A)を読み取ってワーキングメモリ(RAM)のレ ジスタAD_SAUTに格納し、ワーキングメモリのトラップフラグ(DI)を 使用中(active)の位置に設定する。 DIが使用中でない時には、サブルーチンALGO_1が、主プログラム内の APPEL_0、APPEL_1、...APPEL_4で五回、呼び出される 。APPEL_1、APPEL_2、APPEL_3では、読取り専用メモリか 、それとも、プログラマブルメモリにある別のプログラムALGO_2に向けて のトラップは、トラップフラグDIが使用中である時に実行される。なぜなら、 ALGO_1への実効のある各ジャンプAPPEL_1、APPEL_2、AP PEL_3の前に、プログラマが主プログラムのコードにおいてINS_ORT _1、INS_ORT_2、INS_ORT_3のオリエンテーション命令を実 行するように心がけたからである。第3図に示されるように、このオリエンテー ション命令は、まず最初にトラップフラグDIが使用中であるか否か、テストす ることからなる。このフラグが休止中(inactive)であれば、主 プログラムは、通常の経過をたどり、例えばALGO_1向けのジャンプAPP EL_1を実行することで、ROMのアルゴリズムを実行する。トラップフラグ DIが使用中であれば、オリエンテーション命令は、レジスタAD_SAUTの 内容で示されるアドレスに当該プログラムをトラップする。あらかじめレジスタ AD_SAUTに格納されたAD_Cod_Aの値を、中央処理装置の記憶位置 カウンタにロードし、ロードしたアドレスのコード列を実行する。それに反して 、サブルーチンALGO_1は、プログラマの意向により、トラップの可能性も なくAPPEL_4で呼び出される。というのは、いかなるオリエンテーション 命令も、そのサブルーチンには関連付けられてないからである。 問合せ命令とオリエンテーション命令の表現は、事実上、中央処理装置で実行 できる一連の基本命令で構成されたマクロ命令であることに注目すべきである。 同一のオリエンテーション命令は、当該フラグが使用中である限り無限の回数 、実行することができ、そのジャンプは、AD_SAUTに記憶されたアドレス に向けて絶えず行う。同様に、第2図に示されるように、同一の基準コード「A 」とと もに、いくつかのオリエンテーション命令「INS_ORT1」、「INS_O RT_2」、「INS_ORT_3」は主プログラムにおいて実行することがで き、それらの実行から同一の効果がもたらされる。このような場合、主プログラ ムへの戻りアドレスをきわめて細心の注意を払って検討することが必要であり、 戻り命令の実施例は、本書の続きで説明する。 一般に、プログラマは、少なくとも一つの問合せ命令列をすベてのオリエンテ ーション命令の前に実行するように心がけなければならない。ただ一回だけコー ド列を展開しなければならない場合には、トラップフラグDIを休止中にするこ とを目的とするトラップフラグDIの消去命令を、当該コード列で実行する。従 って、主プログラムに戻ってしまうと、次のトリエンテーション命令の際には、 いかなるトラップも、もはや行われない。 この例に照らせば、問合せ命令列とオリエンテーション命令列を切り離す第一 の利点が明らかになる。問合せ命令列は、オリエンテーション命令列よりもさら に入念に仕上げられ、それゆえ、コードの面でさらに費用がかかるために、一度 しかプログラムには入れない。非常に短くて、メモリのスペースの面で ほとんど費用のかからないオリエンテーション命令列は、必要であるたびにセッ トされ、それゆえ、プログラムメモリのスペースが節約される。 トラップフラグDIは、きわめて適切にレジスタADSAUTの特定の値と取 り替えることができる。レジスタAD_SAUTに、所定構成要素用の非揮発性 メモリの有効アドレス値ではない「NULL」値が入っている場合には、これは 、主プログラムのいかなるトラップも考慮に入れるべきでないということである 。同様に、メモリの内容AD_TABが、オリエンテーションテーブルの開始値 と一貫しない値(例えば「NULL」)である場合には、いかなる系列も自由に 使えず、従って、いかなるトラップも考慮に入れないと考えることができる。 第4図に示されるように、いくつかの問合せ命令(INSINT_A、INS _INT_B)を主プログラムに入れることができる。これらの命令はそれぞれ 、プログラムメモリに書き込んだそれ自体の基準コードを有し、またプログラム メモリに入っているオリエンテーションテーブルの最初の値の中に、このコード があるかどうかサーチする。このコードの値が確か にテーブルにある場合には、関連するコード列のアドレスを、ワーキングレジス タAD_SAUTに入れる。従って、問合せ命令を実行することで、前回の問合 せ命令で更新されたレジスタAD_SAUTの値が消去されて、取り替えられる 。 前回の問合せ命令が、トラップアドレスを用いてレジスタAD_SAUTを更 新した場合、また、オリエンテーションテーブルに、その基準コードが見つから ないことにより、別の基準コードを用いて第二の問合せ命令を実行する場合には 、AD_SAUTの前回の値を消去し、従って、次回の問合せ命令まで、すべて のトラップを無効にすることで十分であり、かつ、妥当である。しかしながら、 このように当該トラップを持ち続けることで、前回の値を残しておいても、本発 明の精神から逸脱することはない。 そこで、オリエンテーションテーブルに書き込まれた「A」、「B」などのコ ード基準を利用する第二の利点が明らかになる。すなわち、このテーブルは、有 効なデータしか入ってなく、主プログラムでは、所望の実効トラップしか参照し ない。従って、絶えずそのサイズが最適化され、それゆえ、メモリの占有が節約 される。 都合のよいことには、主プログラムでは呼び出されないコード列を、主プログ ラムに格納することが可能である。本発明に従ったメカニズムを用いれば、これ らの系列のそれぞれに、当該系列の開始アドレスでオリエンテーションテーブル に記憶されたコード基準を関連付けることは可能である。従って、携帯用電子装 置のプログラムメモリで「アイドル」コードを起動できる。 さらに都合のよいことには、オリエンテーション命令は、同一のコード列に入 力点をいくつか定め、それらの入力点を異なる基準コードに関連付けることがで きる。同様に、いくつかの系列、例えば「A」、「B」、「C」は、一つの系列 にまとめることができ、まとめた系列は、基準コード「A」と入力点AD_Co d_Aとともにプログラマブルメモリに一度に書き込まれ、また、他の二つの基 準コードと入力点は後で書き込まれる。このような操作ができるオリエンテーシ ョンテーブルの一例は、後で(第7図)述べられる。 今度は第5図を用いて問合せ命令の展開を説明する。この命令の入力パラメー タは、次回のオリエンテーション命令の際に実行されるコード列に対応する基準 コードの「X」と記された 値であり、この例では、その値は「X」である。段階1では、主プログラムは、 問合せ命令列を実行することにより、システムエリアにおいて、ROMのプログ ラムで知らされるアドレス@で、オリエンテーションテーブルの開始アドレスで ある内容AD_TABを読み取る。段階2では、問合せ命令列が、読み取ったワ ードをテストする。読み取ったワードが有効でなければ、オリエンテーションテ ーブルは存在せず、いかなるコード展開も見込めない。問合せ命令列は終了し、 トラップフラグDIは休止中である(段階10)。読み取ったワードが有効であ れば、段階3で問合せ命令列は、例えばワーキングメモリにあるAD_SAUT のようなポインタを、読み取った値AD_TABを用いて更新する。次に、段階 4では、この問合せ命令列は、テーブルのうち、このポインタでポイントされた 要素を読み取る。問合せ命令列の段階5では、このコード基準に対応するフィー ルドの値と、入力パラメータとして提供された基準コードの値「X」を比較する 。この二つの値が同じであれば、段階8で問合せ命令列は、トラップフラグDI を使用中の状態に位置決めする。段階9で問合せ命令列は、ポインタを用いて、 オリエンテーションテーブル内の基準コードのすぐ後にあるア ドレス値「AD_Cod_X」を読み取る。この値は、RAMワーキングメモリ のレジスタAD_SAUTに格納する。この二つのコード基準値が同じでなけれ ば、段階6でポインタを更新して、オリエンテーションテーブル内で次の基準コ ードをポイントする。このような更新は、テーブルの各要素のサイズを考慮に入 れて行われ、例えば、テーブルが32ビットのワードで構成されている場合には 、バイト(8ビット)をアドレス指定するポインタの値を4だけ増やす。段階7 で問合せ命令列は、プログラマブルメモリのうちポインタがアドレス指定したワ ードが、なおもオリエンテーションテーブルにあるかどうかテストする。このテ ストはテーブルの編成によって決まり、後で、その例がいくつか示される。ポイ ントされたワードが、もはやテーブルには属さない場合には、問合せ命令列は終 了し、段階10で、トラップフラグDIを休止中の状態に位置決めする。ポイン トされたワードが、まだオリエンテーションテーブルにある場合には、問合せ命 令列は、段階4に戻る。 問合せ命令列の出口には、いつもトラップフラグDIを位置づけ、当該フラグ が使用中である場合には、AD_SAUT内の値は有効である。都合のよいこと には、問合せ命令列は、主 プログラムを作成したプログラマが、一方では入力パラメータとしてテーブルで 探す基準コード(例えばX)と場合によっては戻りアドレスを付けて、また他方 では出力パラメータとして、実際にトラップを実行する必要があるかどうかを指 定するトラップフラグDIを付けて、サブルーチンのように書き込むことができ る。オリエンテーションテーブルの読取りを行って、現行基準コードに対応する すべてのアドレスをワーキングメモリに格納することは初期設定の時に可能であ り、このことは、各問合せ命令が、そのテーブルを徹底的に走査して存在しない コードを不必要に探すことのないようにしている。 第6図は、オリエンテーションテーブルの一例を示す。このテーブルは例えば 32ビットのオリエンテーションワードで構成され、例えば一バイトの第一のフ ィールドには基準コードが入っており、また例えば次の二バイトの第二のフィー ルドには非揮発性メモリのコード列の開始アドレスが入っており、また例えば一 バイトの最後のフィールドはオプションであって、当該フィールドには、最初の 二つのフィールドおよび/または関連付けられたコード列の値の完全性を検査で きるチェックサムコード(CheckSum):(CHK_A)が入れられる。 このオリエンテーションテーブルでは、それらの要素は、隣接するように並んで いる。次のワードが未使用である時に、このテーブルは終わる。システムエリア で読み取られるSENSの値は、テーブルポインタが進む方向を、上昇するアド レスか、あるいは、下降するアドレスで示す。第6図では、上昇するアドレスの 方向が選ばれている。 このテーブルが多くの要素を含む時、このテーブルの配置は興味深い。という のも、これらの要素の基準コードが、ある順序に従って分類され、従って、テー ブル内でのこれらの要素の編成は、上昇する基準、すなわち「A」、「B」、「 C」、「D」、「E」...、あるいは、下降する基準、すなわち「Z」、「Y 」、「X」、「W」...に従って行えるからである。バイトで表したテーブル サイズを決める。このサイズは、システムエリアのある領域(第1図のTaTa )に記憶されるか、あるいは、初期設定の時にテーブルの事前読取りで得られる 。ある基準コードをサーチする時には、ソートアルゴリズムを用いることが可能 であり、例えば、ポインタは、AD_TABに入っている値に、あらかじめ決め られたテーブルのバイト数の半分を加えることにより、テーブルの半ばにある要 素のアドレスを用いて 初期設定し、次に、ポインタで読み取られた基準コードと、サーチすべき基準コ ードとを比較し、その結果に応じて、ポインタが前方か、または後方に移動し、 こうして、まだ走査する必要のある領域の真ん中をポイントする。このようなメ カニズムから、テーブルでコード基準をサーチする時間を節約することができる 。従って、テーブルが、分類されたn個の要素を有する場合には、ある要素から 次の要素に移る標準的なサーチ方法の結果、正しいものを見つけるために読取り が、平均してn/2の要素となり、その利点が見いだせる。前に示されたような サーチでは、(log n)要素を読み取りながらサーチでき、これは、nの値 が大きい時に有利である。 テーブル全体を走査した後で、テーブルで読み取られた値がどれも、サーチさ れた基準「A」を有さない場合には、コード列「A」に向けての主プログラムの トラップはまったく行われず、このような場合、ワーキングメモリのトラップフ ラグDIは、休止中の位置に設定される。 このような配置のために、プログラマは、コード列の最初の書込みからすぐに オリエンテーションテーブルのサイズをあらかじめ定めて、このテーブルを完成 し、かつ、場合によっては その他のコード列を書き込むだけの記憶空間をAD_TABの値の後に十分に残 すようにしなければならない。 オリエンテーションテーブルの変形実施例は、単にコード基準を含むことがで き、このような場合、問合せ命令プログラムは、入力パラメータとしてコード基 準を有するアルゴリズムを用いることで、ジャンプアドレスを計算する。 第7図は、オリエンテーションテーブルの別の例を示し、この例を用いると、 プログラマは、サイズに対応する情報をTaTaにあらかじめ記憶させておくか 、あるいは、テーブルの事前読取りを行ってサイズを決めるようなことがなくな る。このテーブルには、前の三つのフィールド、すなわち基準コード値、コード 列の開始アドレス、チェックサム(Check_Sum)よりも一フィールド多 いオリエンテーションワードが入っている。この追加フィールドは、例えば四番 目と五番目のバイトを占有するもので、オリエンテーションテーブル内に、次の 要素のアドレス値を含む。このテーブルは、以下のように読み取れる。すなわち 、最初のコード列に対応するオリエンテーションワードはAD_TABのアドレ スにあって、基準コードは「A」であり、かつ、その系列はAD_Cod_Aの アドレスから始 まり、そして、次のオリエンテーションワードはAD_TT2のアドレスにある 。このAD_TT2のアドレスには、第二のコード列に対応するワードがあり、 このコード列は、基準コードとして「B」を有し、しかも、AD_Cod_Bの アドレスから始まる。次のワードはAD_TT3のアドレスにあり、以下同様で ある。次のオリエンテーションワードのアドレス値が例えば「NULL」である 時に、このテーブルは終わる。この例では、「C」と「D」の基準コード列は同 一のブロックに属することに注目すべきである。このブロックは、事実上、AD _Cod_CとAD_Cod_Dの二つの入力点を有する。 一つ、または複数のコード列、あるいは、コード列の一部が、プログラマブル メモリのデータエリアに書き込むことができることは言うまでもない。このよう な場合、主プログラムのアプリケーション部分により、また場合によっては外部 での読取りを禁止する安全配慮により、それ自体知られており、かつ、適切に範 囲を定めた領域に入れることが推奨される。 今度は、第8図を用いてオリエンテーション命令列の展開を説明する。段階1 1では、オリエンテーション命令列は、トラップフラグDIをテストする。その フラグが休止中であれば、 主プログラムは逐次に続行する。トラップフラグDIが使用中であれば、この命 令列は、段階12に進んで、主プログラムへの戻りアドレスを記憶させる。この 記憶動作はオプションである。なぜなら、主プログラムか、あるいは、他の場所 への戻りアドレスを決めるものは、ともかく当該命令列であるからである。いく つかのオリエンテーション命令列が同一のコード列を呼び出すことができる場合 には、各オリエンテーション命令列に固有の戻りアドレスを記憶させて、トラッ プを発生させた命令の近くに戻すことができるようにしているのは興味深い。こ の記憶動作は、AD_RETのワーキングレジスタか、または、スタックで行わ れ、後者の場合には、プログラマブルメモリに記憶されたコード列は、例えば「 サブルーチンの戻り」(「RTS」)固有のコードで終わるサブルーチンと見な される。次に、段階13では、オリエンテーション命令列は、当該コード列への ジャンプで終わり、このコード列は、前回の問合せ命令列によりAD_SAUT のワーキングメモリのレジスタに記憶されたアドレスから始まる。 今度は、新規コード列の書込みとオリエンテーションテーブルの更新を説明す る。 コード列記録コマンドECR_SEQ_Eは、入出力装置(13)により外部 からチップカードに送られる。このコマンドのデータは、第9図に示されるよう に、いくつかのフィールドに分解される。コマンドECR_SEQ_Eには、以 下のものが含まれる。 − 第一のフィールドに、「A」、「B」、...の基準コード。 − 第二のフィールドに、当該コード列の開始アドレス。 − 第三の任意フィールドに、当該コード列のサイズ、言い換えれば書き込むバ イト数。 − 第四の任意フィールドに、当該コード列、言い換えれば書き込まれるバイト 。 第三と第四のフィールドは、当該コード列をすでに非揮発性メモリ(FRAM か、EPROMか、EEPROMか、または、ROM)に書き込んでいる時には 、無用である。 第10図は、新規系列Eの記録命令ECR_SEQ_Eの実行プログラムPE NRの展開を説明したフローチャートを示している。段階21では、このコマン ドはチップカードに送られ、当該コマンドの最初の二つのフィールドを解析する 。チップカ ードに送られたこの種の命令がそのチップカードで認められると、記録管理プロ グラムは、AD_TAB内の値が一貫しているかどうか検証できる。もし一貫し てなければ、オリエンテーションテーブルは使用できず、従って、新規コード列 を書き込むことができず、そのコマンドは中断される。 段階211では、フラグECAが休止中であれば、当該プログラムは、次の段 階に進み、そうでなければプログラムの実行は中断される。 段階22では、当該記録プログラムは、同一のコード基準がすでに書き込まれ ているかどうかチェックする。もし、受け取ったものと同一のコード基準がすで に、テーブルに入っている場合には、このコマンドを中断する。本発明に特有の このチェックは、前に説明された従来技術と比較して、著しい利点がある。なぜ なら、二つのコード列を誤って、同一の基準を用いて書き込めないようにしてい るからである。段階23では、記録管理プログラムにより、非揮発性メモリのフ ラグが使用中となる。すなわち、ECA_en_cours(追加コードの書込 み進行中)は、新規系列の記録が進行中であることを示す。次に、段階24では 、書き込むコードのバイト数をPENRのプ ログラムがテストする。このバイト数がゼロである場合には、新規のコード列は まったく書き込むべきではないが、テーブルには、新規のコード基準をただ一つ 付け加えなければならない。これは、ROMの「アイドル」コードの起動の場合 か、あるいは、プログラマブルメモリにすでに書き込まれたコード列に対する入 力点の付加である。 書き込むコードのバイト数がゼロでなければ、段階25でチップカードを受取 りモードにする。これらのバイトは受け取られて、場合によっては解読および/ またはサインされ(もしそれが選択されたモードである場合)、次に、コマンド ECRSEQ_Eの第二のフィールドに定めた当該系列の開始アドレスに「ひき つづいて」書き込まれる。あらゆる場合に、書込みアドレスは、未使用でなけれ ばならない。もしそうでなければ、フラグECA_en_coursを使用中に しておいたままで、そのコマンドは中断され、その結果、後で説明される再生メ カニズムを除き、チップカードが最終的に停止する。コードのすベてのバイトが 受け取られ、かつ、該当する系列が書き込まれると、段階(26)で、プログラ ム(PENR)は、その書込みが正確に展開されたかどうか検証する。そのため の手段は、 書き込まれたバイトと、そのアドレスの値から、チェックサム(CheckSu m)の計算またはサインを入念に準備することにある。段階27では、プログラ ム(PENR)は、記録されたコードの妥当性をテストする。この書込みが適切 に展開されなかった場合には、フラグECA_en_coursを使用中にして おいたままで、そのコマンドは中断される。 この書込みが適切に展開された場合、あるいは、書き込むコード列がない場合 には、プログラムPENRは、段階28で、新規オリエンテーションワードを書 き込んでオリエンテーションテーブルを更新する。第6図で説明されたテーブル の概要では、新規のオリエンテーションワードは、最終ワードの直後に書き込ま れる。プログラムPENRは、SENSに示される方向に従って進むことにより 、AD_TABのアドレスからテーブルをスキャンして、最終要素を決定する。 オリエンテーションワードの第三のフィールドに書き込まれたチェックサム(C heckSum)は、外部から、区別せずに送られるか、あるいは、チップカー ドで計算される。このチェックサム(CheckSum)は、バイトの単純合計 または排他的論理和(XOR)の型式であるか、あるいは、暗号型式であって、 テーブルの該当ワードを対象とするか、あるいは、このワードに関連付けられた コード列を含む。第7図で説明されるテーブルの概要では、新規ワードは、テー ブルのオリエンテーションワードと系列のエリアの未使用位置に書き込まれる。 プログラムPENRはまた、テーブルの最後から二番目のフィールドである第三 のフィールドを変更して、当該フィールドに、この新規コード列「E」のAD_ Cod_Eのアドレスを入れるようにしなければならない。 以上の操作がすべて適切に展開された時には、プログラムPENRの段階29 でフラグECA_en_coursを休止中にし、その主な結果として、オリエ ンテーションテーブルとそれらの系列の妥当性が確認される。このコマンドが正 しく展開されなかった場合には、プログラムPENRによりエラーメッセージが 外部に送られることで、エラーの種類の情報をユーザに与える。 AD_TABの内容と、場合によってはSENSの内容を書き込むための特別 なケースを伝える必要がある。というのも、前の説明は、すでに始まったオリエ ンテーションテーブルに対してのみ通用するからである。AD_TABにはオリ エンテー ションテーブルの開始アドレスが入っていることと、オリエンテーションテーブ ルが第6図で説明される通りに編成される場合には、SENSのフィールドが、 このテーブルのスキャン方向を示すことを思い起こす。 第9図で説明されるデータのフォーマットを利用すれば、AD_TABの内容 と、場合によってはSENSの内容を書き込むための特別なコード基準を提供で きる。いつも第9図を参照しても、このような特別な基準では、当該系列のコー ドを含むフィールドAD_Cod_Aが、AD_TABと場合によってはSEN Sに入れる内容を含むのに、そのフィールドは有効とはならない。 どのようなデータ(コード列、オリエンテーションテーブルの要素など)の書 込みにも通用する別のやり方は、以下のフォーマットを利用することにある。 「書込み開始アドレス バイト数 データ」 この方法は、追加コードの設計者の責任のもとに、どんなデータでも書き込め るというきわめて重要な利点がある。 オペレーティングシステム、あるいは、追加コード利用のようなオペレーティ ングシステムの特徴のいくつかを識別するた めには、チップカードを通電させた時に、チップカードに識別バイトを送らせる ことで十分である。通電は、チップカードと対話できるまでの必要不可欠な操作 である。内部では、オペレーティングシステムは、オリエンテーションテーブル のポインタAD_SAUTとテーブル自体を解析することにより、リセットに対 する対応を構築することができる。 チップカードの外部から送られるコード列の無効化命令INS_INA_Cは 、その処理プログラム(PINA)により、ある基準コード、例えばCに対応す るトラップを休止させることを目的としている。第一のやり方は、このコードに 関するあらゆるデータ、すなわちオリエンテーションテーブル内の要素や、該当 するすべての系列を消去することにある。次に、オリエンテーションテーブルを 更新する。第二のやり方は、さらに高速なものであって、別の値、例えば「NU LL」で無効にするコード列に対応する基準コードを、オリエンテーションテー ブル内で変更することにあり、このコードはもはや存在しないから、いかなる問 合せ命令も、このコード列を実行する目的で、ワーキングメモリAD_SAUT を更新できなくなる。要するに、後者のやり方は、オリエンテーションテーブル のア ドレス値を、不可能なアドレス値、例えば「NULL」に替えるか、あるいはま た、「制御を戻す」単純なコード列に呼出しを向けることにある。この後者のや り方は、ROMに書き込まれたコード列にぴったり合い、従って、この「アイド ル」コードは、非常に容易に、起動と休止を行うことができる。 チップカードの外部から発生する再生書込みINS_REGは、その処理プロ グラムPREGにより、一つ、または複数のコード列、および/または、テーブ ルの要素すなわち一般には一連のデータを消去することを目的としている。以下 のいくつかの方法が可能である。すなわち、メモリ空間の開始アドレスと終了ア ドレスをチップカードに送り、このメモリ空間のすべてのバイトを消去する。こ の方法は、やや「手荒」であるため、消去してはならない系列が十分に活かせる ように、慎重に利用しなければならない。別の方法は、消去する基準コードと、 もしあれば対応するプログラマブルメモリのコード列をチップカードに明示する ことにあり、このようなコマンドの後で、当該プログラムは、該当するテーブル の要素のアドレスを決定し、次に、これらの要素を消去し、さらにコード列の開 始アドレスと終了アドレスを決定して、最後にその内容を消去する。これ らのアドレスをサーチしてからテーブルを更新する方法は、オリエンテーション テーブルの構造によるところが大きい(第6図と第7図を参照のこと)。この方 法は、当業者には問題はなく、従って、説明するには及ばない。 テーブルとコード列を容易に更新できる最後のコマンドREC_ESP_VR Gは、「未使用空間のサーチ」である。このコマンドを、特定のデータ無しにチ ップカードに送れば、このコマンドの処理プログラムPREVは、プログラマブ ルメモリ(11)の未使用位置を、その位置のそれぞれの開始アドレスと終了ア ドレスを付けて外部に送ることができる。 コード列を付け加えたいと思うユーザは、このコマンドの後で、空きスペース が十分であるかどうか確認し、その記憶アドレスに応じてコード列を定めること ができる。 追加コード列の完全性検査ができる実施変形例では、オリエンテーション命令 列へのジャンプを行う直前に、オリエンテーションテーブルの各要素の中に、二 つの追加フィールドを準備することが必要である。 第一の追加フィールドは、当該要素に関連付けられた追加コード列のサイズを 示し、また第二の追加フィールドは、正しい 初期チェックサム(CheckSum)を含む。 計算されたチェックサム(CheckSum)が初期チェックサムと異なる場 合には、このオペレーティングシステムは、適切な状態ワードで知らせて、その 実行を中断する。この方法は、新規コード列の毎回の実行前に検査が行われると いう利点があっても、関連コマンドの実行時間に不利となるか、それとも、最初 の実行の時のみ、この検査を行うことに限定されるか、いずれかである。 第二の方法は、専用コマンドを使って、プログラマブルメモリのある領域のチ ェックサム(CheckSum)の計算を行い、その計算された値と、提供され たか、あるいは、あらかじめフィールドCHK_Xに書き込まれた値とを比較す ることにある。従って、システム管理者は、このコマンドを定期的に起動させて 、すべてOKであるか確認することができる。 追加コードの記録と実行の機構をサポートするオペレーティングシステムを制 御すれば、その容量を以下のようなプログラマブルメモリの抑止ラッチで減らす ことができる。 − CAI: あらゆる記録の前に、オペレーティングシステムでテストされる 抑止追加コード。 − RCI: あらゆる再生の前に、オペレーティングシステムでテストされる 抑止カード再生。 以上のラッチは、その管理に関しては、チップカードのオペレーティングシス テムのライフサイクルの管理ラッチ(ロック)と類似している。 このような手段の利用は、EEPROM(11)に追加コードをロードし、次 にRCIとCAIの抑止ラッチを位置づけて、付け加えられたコードを休止させ ることにある。 もちろん、本発明は、前述の実施例にはまったく限定されず、それどころか、 本発明の精神で実行され、かつ、以下のクレームの範囲内で実施される場合には 、明確に説明された手段の技術的均等物を構成するあらゆる手段、および、それ らの組合せも含む。
【手続補正書】 【提出日】1998年3月12日 【補正内容】 (1)請求の範囲を別紙の通り補正する。 (2)明細書の第1頁第8行目に「それ……させる」とあるを「、このコードを 実行する」と補正する。 (3)明細書の第17頁第16行目に「プログラムメモリ」とあるを「プログラ マブルメモリ」と補正する。 (4)明細書の第17頁第17行目に「プログラムメモリ」とあるを「プログラ マブルメモリ」と補正する。 (5)明細書の第19頁第6行目に「プログラムメモリ」とあるを「プログラマ ブルメモリ」と補正する。 (6)明細書の第25頁第11行目に「基準コード値」とあるを「コードの基準 値」と補正する。 (7)明細書の第30頁第12行目に「に「ひきつづいて」」とあるを「の「直 後に」」と補正する。 (8)明細書の第32頁第5行目及至第6行目に「から……ある」とあるを「の ワードの前の」と補正する。 請求の範囲 1.コード列を実行できる集積回路(10)と、一方では、主プログラムと場合 によっては当該集積回路で実行できるその他のコード列が入っている第一のメモ リ(12)と、また他方では、場合によっては当該集積回路で実行できるコード 列が入っている第二のプログラマブル非揮発性メモリ(11)と、第三のワーキ ングメモリ(14)とを備える回路基板内のコード列実行装置であって、第二の メモリ(11)に入っているオリエンテーションテーブルが、コード基準データ のあるフィールドを少なくとも一つ含み、 第一の手段(INS_INT)により、 − コード基準の有無を検証でき、 − コード基準に関連付けられたアドレスデータをワーキングメモリに記憶さ せて、トラップフラグDIを位置決めすることができ、 第二の手段(INS_ORT)により、 − トラップフラグDIをテストすることができ、 − ワーキングメモリAD_SAUTの内容でポイントされたアドレスにジャ ンプを行うことができる ことを特徴とする装置。 2.コード基準に関連付けられた、三つのメモリの一つに入っているコード列 アドレスデータが、このコード基準に基づいて計算されることを特徴とする請求 の範囲第1項に記載の装置。 3.第二のフィールドが、三つのメモリの一つに入っているコード列のアドレス データを含むことを特徴とする請求の範囲第1項に記載の装置。 4.プログラマブルメモリ(11)のうち場合によっては保護される領域に、第 一のアドレスと、場合によっては第一の検証手段用のサーチ方向(SENS)と を規定する情報(AD_TAB)を含むことを特徴とする請求の範囲第1項に記 載の装置。 5.オリエンテーションテーブルが、テーブル中の、次のコード基準に対応する 情報がある次のアドレスを示す追加フィールド(AD_TT)を含むことを特徴 とする請求の範囲第1項に記載の装置。 6.オリエンテーションテーブルが、チェックサムの計算手段により提供された 結果と比較することで、前のフィールドおよび/または関連付けられたコード列 の完全性を確認できる追加フィールド(CHK)を含むことを特徴とする請求の 範囲第1項に記載の装置。 7.第二の手段が、同一の系列アドレスに向けてジャンプを実行する目的で第二 の手段がいくつか自由に使用できる時、ジャンプ後に、戻りアドレスをワーキン グメモリ(AD_RET)に記憶する手段を含むことを特徴とする請求の範囲第 1項に記載の装置。 8.追加コードを記録させないようにする手段CATと、媒体の再生を妨げる手 段RCIを含むことを特徴とする請求の範囲第1項に記載の装置。 9.請求の範囲第4項に記載の装置に新規コードを記録する方法であって、 − 記録コマンドを受け取るステップと、 − コード基準A、B、C、...を構成する第一のフィールドと、当該コード 基準に関連付けられたアドレスAD_Cod_A、AD_Cod_B、AD_C od_C、...を示す第二のフィールドの有無を検証するステップと、 − フラグECAが使用中でないことを確かめるステップと、 − 第一のアドレスAD_TABの値が一貫していることを確かめるステップと 、 − 第一のフィールドで提供されるコード基準がテーブルにないことをチェック するステップと、 − 使用中の状態で、プログラマブルメモリのうちの保護される領域にフラグE CAをセットするステップと、 − 新規コードに対応する情報を受け取って書き込むステップと、 − この動作が正確に行われたことを確かめ、オリエンテーションテーブルを更 新するステップと、 − 休止中の状態で、フラグECA位置セットするステップと、 を含むことを特徴とする方法。 10.オリエンテーションテーブルの更新操作が、書き込まれたコードの前にく るコードのオリエンテーションワードに対応するアドレスに、オリエンテーショ ンテーブル内の次のアドレスのフィールドを書き込むことを含むことを特徴とす る請求の範囲第9項に記載の方法。 【手続補正書】 【提出日】1998年3月23日 【補正内容】 請求の範囲 1.コード列を実行できる集積回路(10)と、一方では、主プログラムと場合 によっては当該集積回路で実行できるその他のコード列が入っている第一のメモ リ(12)と、また他方では、場合によっては当該集積回路で実行できるコード 列が入っている第二のプログラマブル非揮発性メモリ(11)と、第三のワーキ ングメモリ(14)とを備える回路基板内のコード列実行装置であって、第二の メモリ(11)に入っているオリエンテーションテーブルが、コード基準データ のあるフィールドを少なくとも一つ含み、 第一の手段(INS_INT)により、 − コード基準の有無を検証でき、 − コード基準に関連付けられたアドレスデータをワーキングメモリに記憶さ せて、トラップフラグDIをセットすることができ、 第二の手段(INS_ORT)により、 − トラップフラグDIをテストすることができ、 − ワーキングメモリAD_SAUTの内容でポイントされたアドレスにジャ ンプを行うことができる ことを特徴とする装置。 2.コード基準に関連付けられた、三つのメモリの一つに入っているコード列の アドレスデータが、このコード基準に基づいて計算されることを特徴とする請求 の範囲第1項に記載の装置。 3.第二のフィールドが、三つのメモリの一つに入っているコード列のアドレス データを含むことを特徴とする請求の範囲第1項に記載の装置。 4.プログラマブルメモリ(11)のうち場合によっては保護される領域に、第 一のアドレスと、場合によっては第一の検証手段用のサーチ方向(SENS)と を規定する情報(AD_TAB)を含むことを特徴とする請求の範囲第1項に記 載の装置。 5.オリエンテーションテーブルが、テーブル中の、次のコード基準に対応する 情報がある次のアドレスを示す追加フィールド(AD_TT)を含むことを特徴 とする請求の範囲第1項に記載の装置。 6.オリエンテーションテーブルが、チェックサムの計算手段により提供された 結果と比較することで、前のフィールドおよび/または関連付けられたコード列 の完全性を確認できる追加フィールド(CHK)を含むことを特徴とする請求の 範囲第1項に記載の装置。 7.第二の手段が、同一の系列アドレスに向けてジャンプを実行する目的で第二 の手段がいくつか自由に使用できる時、ジャンプ後、戻りアドレスをワーキン グメモリ(AD_RET)に記憶する手段を含むことを特徴とする請求の範囲第 1項に記載の装置。 8.追加コードを記録させないようにする手段CAIと、回路基板の再生を妨げ る手段RCIを含むことを特徴とする請求の範囲第1項に記載の装置。 9.請求の範囲第4項に記載の装置に新規コードを記録する方法であって、 − 記録コマンドを受け取るステップと、 − コード基準A、B、C、...を構成する第一のフィールドと、当該コード 基準に関連付けられたアドレスAD_Cod_A、AD_Cod_B、AD_C od_C、...を示す第二のフィールドの有無を検証するステップと、 − フラグECAが使用中でないことを確かめるステップと、 − 第一のアドレスAD_TABの値が一貫していることを確かめるステップと 、 − 第一のフィールドで提供されるコード基準がテーブルにないことをチェック するステップと、 − 使用中の状態で、プログラマブルメモリのうちの保護される領域にフラグE CAをセットするステップと、 − 新規コードに対応する情報を受け取って書き込むステップと、 − この動作が正確に行われたことを確かめ、オリエンテーションテーブルを更 新するステップと、 − 休止中の状態で、フラグECAセットするステップと、 を含むことを特徴とする方法。 10.オリエンテーションテーブルの更新操作が、書き込まれたコードの前にく るコードのオリエンテーションワードに対応するアドレスに、オリエンテーショ ンテーブル内の次のアドレスのフィールドを書き込むことを含むことを特徴とす る請求の範囲第9項に記載の方法。

Claims (1)

  1. 【特許請求の範囲】 1.コード列を実行できる集積回路(10)と、一方では、主プログラムと場合 によっては当該集積回路で実行できるその他のコード列が入っている第一のメモ リ(12)と、また他方では、場合によっては当該集積回路で実行できるコード 列が入っている第二のプログラマブル非揮発性メモリ(11)と、第三のワーキ ングメモリ(14)とを備える回路基板内のコード列実行装置であって、第二の メモリ(11)に入っているオリエンテーションテーブルが、コード基準データ のあるフィールドを少なくとも一つ含み、 第一の手段(INS_INT)により、 − コード基準の有無を検証でき、 − コード基準に関連付けられたアドレスデータをワーキングメモリに記憶さ せて、トラップフラグDIを位置決めすることができ、 第二の手段(INS_ORT)により、 − トラップフラグDIをテストすることができ、 − ワーキングメモリAD_SAUTの内容でポイントされ たアドレスにジャンプを行うことができる ことを特徴とする装置。 2.コード基準に関連付けられた、三つのメモリの一つに入っているコード列に 関連するアドレスデータが、このコード基準に基づいて計算されることを特徴と する請求の範囲第1項に記載の装置。 3.第二のフィールドが、三つのメモリの一つに入っているコード列のアドレス データを含むことを特徴とする請求の範囲第1項に記載の装置。 4.プログラマブルメモリ(11)のうち場合によっては保護される領域に、第 一のアドレスと、場合によっては第一の検証手段用のサーチ方向(SENS)と を規定する情報(AD_TAB)を含むことを特徴とする請求の範囲第1項に記 載の装置。 5.オリエンテーションテーブルが、テーブル中の、次のコード基準に対応する 情報がある次のアドレスを示す追加フィールド(AD_TT)を含むことを特徴 とする請求の範囲第1項に記載の装置。 6.オリエンテーションテーブルが、チェックサムの計算手段 により提供された結果と比較することで、前のフィールドおよび/または関連付 けられたコード列の完全性を確認できる追加フィールド(CHK)を含むことを 特徴とする請求の範囲第1項に記載の装置。 7.第二の手段が、同一の系列アドレスに向けてジャンプを実行する目的で第二 の手段がいくつか自由に使用できる時、ジャンプ後に、戻りアドレスをワーキン グメモリ(AD_RET)に記憶する手段を含むことを特徴とする請求の範囲第 1項に記載の装置。 8.追加コードを記録させないようにする手段CAIと、チップカードの再生を 妨げる手段RCIを含むことを特徴とする請求の範囲第1項に記載の装置。 9.請求の範囲第4項に記載の装置に新規コードを記録する方法であって、 − 記録コマンドを受け取るステップと、 − コード基準A、B、C、...を構成する第一のフィールドと、当該コード 基準に関連付けられたアドレスAD_Cod_A、AD_Cod_B、AD_C od_C、...を示す第二のフィールドの有無を検証するステップと、 − フラグECAが使用中でないことを確かめるステップと、 − 第一のアドレスAD_TABの値が一貫していることを確かめるステップと 、 − 第一のフィールドで提供されるコード基準がテーブルにないことをチェック するステップと、 − 使用中の状態で、プログラマブルメモリのうちの保護される領域にフラグE CAをセットするステップと、 − 新規コードに対応する情報を受け取って書き込むステップと、 − この動作が正確に行われたことを確かめ、オリエンテーションテーブルを更 新するステップと、 − 休止中の状態で、フラグECA位置セットするステップと、 を含むことを特徴とする方法。 10.オリエンテーションテーブルの更新操作が、書き込まれたコードの前にく るコードのオリエンテーションワードに対応するアドレスに、オリエンテーショ ンテーブル内の次のアドレスのフィールドを書き込むことを含むことを特徴とす る請求の範囲第9項に記載の方法。
JP53863997A 1996-04-30 1997-04-29 非プログラマブルメモリ手段に記憶されたコードに加えて、コード列を実行するための装置及び装置へ新しいコード列を書込む方法 Expired - Fee Related JP3592335B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR9605454A FR2748134B1 (fr) 1996-04-30 1996-04-30 Procede et dispositif permettant a un programme fige de pouvoir evoluer
FR96/05454 1996-04-30
PCT/FR1997/000759 WO1997041510A1 (fr) 1996-04-30 1997-04-29 Procede et dispositif permettant a un programme fige de pouvoir evoluer

Publications (2)

Publication Number Publication Date
JPH10510652A true JPH10510652A (ja) 1998-10-13
JP3592335B2 JP3592335B2 (ja) 2004-11-24

Family

ID=9491735

Family Applications (1)

Application Number Title Priority Date Filing Date
JP53863997A Expired - Fee Related JP3592335B2 (ja) 1996-04-30 1997-04-29 非プログラマブルメモリ手段に記憶されたコードに加えて、コード列を実行するための装置及び装置へ新しいコード列を書込む方法

Country Status (12)

Country Link
US (1) US6275982B1 (ja)
EP (1) EP0838053B1 (ja)
JP (1) JP3592335B2 (ja)
KR (1) KR19990028574A (ja)
CN (1) CN1109296C (ja)
AU (1) AU2779697A (ja)
BR (1) BR9702294A (ja)
CA (1) CA2225786A1 (ja)
DE (1) DE69729622T2 (ja)
FR (1) FR2748134B1 (ja)
NO (1) NO317558B1 (ja)
WO (1) WO1997041510A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434738B1 (en) * 1999-04-22 2002-08-13 David Arnow System and method for testing computer software
JP2003507813A (ja) * 1999-08-24 2003-02-25 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ プログラムとデータの両方を格納する不揮発性メモリを有するデータ処理装置
US7266842B2 (en) * 2002-04-18 2007-09-04 International Business Machines Corporation Control function implementing selective transparent data authentication within an integrated system
FR2928754B1 (fr) * 2008-03-13 2012-05-18 Sagem Securite Carte a circuit integre ayant un programme d'exploitation modifiable et procede de modification correspondant
JP5824849B2 (ja) * 2011-04-22 2015-12-02 ソニー株式会社 情報処理装置および情報処理方法
US20140006867A1 (en) * 2012-06-29 2014-01-02 National Instruments Corporation Test Executive System With Process Model Plug-ins
US20160132251A1 (en) * 2014-11-11 2016-05-12 Wisconsin Alumni Research Foundation Operating method of storage device and data writing method for writing data into storage device
CN108446242A (zh) * 2018-03-07 2018-08-24 珠海昇生微电子有限责任公司 一种固化代码的替换方法及系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01273136A (ja) * 1988-04-26 1989-11-01 Oki Electric Ind Co Ltd オペレーティングシステムのファームウェア化方式
US5615349A (en) * 1990-09-04 1997-03-25 Mitsubishi Denki Kabushiki Kaisha Data processing system capable of execution of plural instructions in parallel
US5202923A (en) 1989-11-30 1993-04-13 Kabushiki Kaisha Toshiba Portable electronic device capable of registering subprograms
FR2667417B1 (fr) * 1990-10-02 1992-11-27 Gemplus Card Int Carte a microprocesseur concue pour recevoir des programmes multiples en memoire programmable.
FR2668274B1 (fr) * 1990-10-19 1992-12-31 Gemplus Card Int Circuit integre a securite d'acces amelioree.
FR2676294B1 (fr) * 1991-05-06 1993-07-16 Gemplus Card Int Procede de verrouillage pour carte a memoire.
TW261687B (ja) * 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
KR950003013B1 (ko) * 1992-03-30 1995-03-29 삼성전자 주식회사 틀림정정회로를 가지는 이이피롬
FR2700040B1 (fr) * 1992-12-31 1995-02-17 Gemplus Card Int Carte à puce avec données et programmes protégés contre le vieillissement.
US5829013A (en) * 1995-12-26 1998-10-27 Intel Corporation Memory manager to allow non-volatile memory to be used to supplement main memory
US5901330A (en) * 1997-03-13 1999-05-04 Macronix International Co., Ltd. In-circuit programming architecture with ROM and flash memory

Also Published As

Publication number Publication date
NO976126D0 (no) 1997-12-29
FR2748134B1 (fr) 1998-06-26
WO1997041510A1 (fr) 1997-11-06
NO976126L (no) 1998-02-27
DE69729622T2 (de) 2005-07-07
CN1189901A (zh) 1998-08-05
US6275982B1 (en) 2001-08-14
CN1109296C (zh) 2003-05-21
NO317558B1 (no) 2004-11-15
FR2748134A1 (fr) 1997-10-31
JP3592335B2 (ja) 2004-11-24
EP0838053B1 (fr) 2004-06-23
DE69729622D1 (de) 2004-07-29
CA2225786A1 (en) 1997-11-06
KR19990028574A (ko) 1999-04-15
EP0838053A1 (fr) 1998-04-29
BR9702294A (pt) 1999-07-20
AU2779697A (en) 1997-11-19

Similar Documents

Publication Publication Date Title
KR100991718B1 (ko) 플래시 디바이스에서 부분적으로 소거된 유닛을 검출하는방법
US6453397B1 (en) Single chip microcomputer internally including a flash memory
US5039850A (en) IC card
US8000153B2 (en) Enhanced erase for flash storage device
JPH021090A (ja) Icカード及びその動作プログラム書込み方法
JPH06231317A (ja) データ及びプログラムを経年変化から保護したicカード
JP2000065899A (ja) 半導体装置およびそのデータ書き換え方法
JP3563412B2 (ja) コードシーケンスを変更する方法及び関連の装置
JP3592335B2 (ja) 非プログラマブルメモリ手段に記憶されたコードに加えて、コード列を実行するための装置及び装置へ新しいコード列を書込む方法
JP3771904B2 (ja) 補助レジスタバンクを有するマイクロプロセッサ回路
CN100492293C (zh) 一种客制化基本输入输出系统的更新方法
JP2006525568A (ja) 携帯型データ記憶媒体のメモリ管理
JPH08190614A (ja) Icカード
JPH048838B2 (ja)
JPH09146774A (ja) パーソナルコンピュータシステム
JPH11250675A (ja) 記憶装置及び記憶制御方法
JP3607229B2 (ja) 携帯可能電子装置及びそのチェック方法
JP3899223B2 (ja) Icカードおよびicカード搭載処理プログラムの変更・追加方法
JP2000243093A (ja) フラッシュメモリへのデータ記憶方法及びフラッシュメモリからのデータ読出方法
JP2004348342A (ja) Icカードとicカードの処理方法
US20050068842A1 (en) Electronic device, nonvolatile memory and method of overwriting data in nonvolatile memory
JP2005531842A (ja) 不揮発性メモリへの書き込み方法およびこの方法を実現するシステム
JP2842252B2 (ja) 計算機システムにおけるフラッシュメモリカードへのデータ書き込み方式
KR20000033437A (ko) 부트스트랩로더 기능 구현 장치
JP3057326B2 (ja) Icカード

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040720

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040825

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080903

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090903

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100903

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100903

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110903

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120903

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130903

Year of fee payment: 9

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees