JPH04111145A - マイクロコンピュータ - Google Patents

マイクロコンピュータ

Info

Publication number
JPH04111145A
JPH04111145A JP2230942A JP23094290A JPH04111145A JP H04111145 A JPH04111145 A JP H04111145A JP 2230942 A JP2230942 A JP 2230942A JP 23094290 A JP23094290 A JP 23094290A JP H04111145 A JPH04111145 A JP H04111145A
Authority
JP
Japan
Prior art keywords
bus
address
internal state
converter
output
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.)
Pending
Application number
JP2230942A
Other languages
English (en)
Inventor
Yukihisa Hisanaga
尚永 幸久
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2230942A priority Critical patent/JPH04111145A/ja
Priority to GB9112507A priority patent/GB2247547B/en
Priority to DE4121294A priority patent/DE4121294C2/de
Publication of JPH04111145A publication Critical patent/JPH04111145A/ja
Priority to US08/265,556 priority patent/US5539919A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/3167Testing of combined analog and digital circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、LSIの内部動作、内部記憶装置等の状態
を外部へ出力するようにしたマイクロコンピュータに関
するものである。
〔従来の技術〕
第7図は従来のD/A変換器内蔵シングルチップマイク
ロコンピュータの内部構成を示すブロック図である。図
において1はシングルチップマイクロコンピュータ(以
下マイコンという)の全体を示し、その内部には、2の
プログラムカウンタ、3の汎用レジスタ、4のROM、
5のRAM、6のD/A変換器、7のD/A変換器用レ
ジスタが内蔵され、これらD/A変換器用レジスタ7等
は8のデータバス、9のアドレスバスに接続されている
。データバス8とアドレスバス9で示す矢印の向きは、
ハス上信号(アドレスデータ、データ)の入力及び出力
の方向を示している。10は上記D/A変換器6の入力
であり、D/A変換器用レジスタ7より出力される。1
1はマイコン1内部のハス8.9の制御を行うバスタイ
ミング制御器で、一部のタイミングはマイコン外部にハ
スタイ13はD/A変換器6のアナログ出力、1415
はそれぞれマイコン内部のデータバス8.アドレスバス
9をマイコン外部に出力する信号出力である。16は外
部からの割り込み人力17に従って、マイコン内部の割
り込み処理制御を行う割り込み制御器である。
各出力信号12,14.15は並列出力のため多軸ケー
ブルを使用し、マイコンlの端子としては多数のピンが
設けられている。
次に動作について説明する。プログラムカウンタ2.汎
用レジスタ3.ROM4.RAM5はデータバス8.ア
ドレスバス9に接続され、バスタイミング制御器11の
制御の下に情報の伝送が行われる。第8図に動作の1例
を示す。プログラムカウンタ2.汎用レジスタ3.RO
M4.RAM5のアドレス及び書き込み/読み出し内容
はアドレスバス9.データバス8上に時分割で現れ、タ
イミング制御信号12により指定される。
バスタイミング制御器11からは第8図の基本り07り
φ12a、5YNC信号12b、WR信号12c、RD
信号12dが出力されている。アドレスバス9上に現れ
る命令コードの先頭番号23aは5YNC信号12bの
立ち下がりで示され、PCである。アドレスバス9で示
されるo。
A D L −を地24のRAM5に書き込まれるデー
タ25はWR信号12cの立ち上がりでDATAA。
が書き込まれる。
なお、AD、はアドレス上位、ADHはアドレス下位の
それぞれ8ビツトである。また、φ信号は命令の基本ク
ロック、5YNC信号は命令コード先頭番地タイミング
、WRはプログラムカウンタ2.汎用レジスタ3.RA
M5への書き込みタイミング、RDはプログラムカウン
タ2.汎用レジスタ3.ROM4.RAM5がらの読み
出しタイミングである。D/A変換器用レジスタ7は汎
用レジスタ3と同様にアドレスバス9.データバス8に
接続され、バスタイミング制御器11により、データの
データバス8からの書き込み、ブタバス8への読み出し
が行われる。書き込まれた(ラッチされた)D/A変換
器用レジスタ7の内容はD/A変換器人力10となり、
D/A変換器6に入力される。D/A変換器6はデジタ
ルブタをアナログ信号に変換し、D/A変換器出力13
としてマイコン1外部に出力する。
一方、マイコン1内部の プログラムカウンタ2、汎用
レジスタ3.ROM4.RAM5の内容を外部に出力す
るには2つの方法がある。1つはマイコンl外部にバス
タイミング制御信号12゜アドレスバス出力14.デー
タバス出力15を出力し、3つのタイミング関係により
内容を知る方法。
2つ目は、ソフトウェアによりD/A変換器用レジスタ
7にデータバス8を介して、プログラムカウンタ2.汎
用レジスタ3.ROM4.RAM5の内容を転送し、D
/A変換器出力13として内容を知る方法である。
このマイコン1には割り込み人力17と割り込み制御器
16があり、割り込みプログラム実行の制御が行える。
この割り込みプログラムを実行して、必要に応じてD/
A変換器用レジスタ7にRAM5等の内容をソフトウェ
アで取り込んでいる。割り込みを発生しない限り、RA
M5等の内容はD/A変換器用レジスタ7には転送され
ないものである。割り込み後はメインプログラムの処理
は中断されている。
〔発明が解決しようとする課題〕
従来のD/A変換器内蔵シングルチップのマイクロコン
ピュータ1は、以上のように構成されているので、プロ
グラムカウンタをはじめとするマイコン内部の状態を外
部へ出力するためには、アドレスバスの信号、データバ
スの信号、バスタイミング制御信号をすべて出力する第
1の方法と、ソフトウェア命令により知りたいデータを
D/A変換器用レジスタ7に転送し、D/A変換器6の
出力により知る第2の方法があった。
第1の方法は多数の信号ビン数が必要でマイコン1全部
のビン数が制限されることの多い高密度小型のシングル
チップマイクロコンピュータでは容積上で問題があった
。また、測定信号はデジタル信号なので、パルスの列を
観測するため、認識が困難であるという欠点もあった。
第2の方法は、ソフトウェアが介するため、外部に内容
が出力されるまでに長い時間がかかる。
また、常に内容を定期的に外部へ出力しようとすると、
そのためのプログラム容量が大きくなる等の問題点があ
った。
この発明は上記のような問題点を解消するためになされ
たもので、小数のピン数追加でしかも高速にマイコン内
部のプログラムカウンタ、汎用レジスタ、ROM、RA
M等の内容をマイコン外部に出力できるD/A変換器内
蔵のシングルチップマイクロコンピュータを得ることを
目的とする。
〔課題を解決するための手段〕
この発明においては、アドレスバス9及びブタバス8上
に現れたデジタル値をラッチする内部状態ラッチ器18
と、この内部状態ラッチ器18に監視したい内容を指定
する内部状態監視選択器20とを、アドレスバス9及び
データバス8とD/A変換器6a、6bとの間に介装し
て構成した。
〔作用〕
監視したい候補のプログラムカウンタ2.汎用レジスタ
3.ROM4及びRAM5等からいくつか任意のアドレ
スを、内部状態監視選択器2oがらソフトウェア的に指
定する。内部状態ラッチ器18から指定されたアドレス
とデータのデジタル値とを出力し、このデジタル値をD
/A変換器6a、5bでアナログ値に変換して出力させ
る。アドレスバス9及びデータバス8に現れる内容と種
類は時分割でバスタイミング制御器11で決められてい
るので、バスタイミング信号に内部状態監視選択器20
を同期させて、監視したい対象を特定できる。
C実施例〕 以下この発明の一実施例を図について説明する。
第1図は発明したD/A変換器内蔵シングルチップのマ
イクロコンピュータ(以下マイコン)の内部構成を示す
ブロック図である。同図において、1のマイコンには2
のプログラムカウンタ、3の汎用レジスタ、4のROM
、5のRAMが内蔵されRAM5等は8のデータバス9
のアドレスバスタ、データ)の入力及び出力の方向を示
している。11はマイコン1内部のハス8.9の制御を
行うバスタイミング制御器である。16は外部からの割
り込み人力17に従って、マイコン内部の割り込み処理
制御を行う割り込み制御器である。
次に5a、5bはマイコン1に内蔵される2つのD/A
変換器で、D/A変換器人力10a。
10bを入力し、マイコン1外部へD/A変換器出力1
3a、13bを出力する。18はマイコンの内部状態の
うち監視したいものを選択し、−時記憶する内部状態ラ
ッチ器、19は選択された複数の内部状態を出力する内
部状態ラッチ器出力、20は監視したい内部状態を選択
する内部状態監視選択器で、その出力21は上記内部状
態ラッチ器18及び下記D/A入力選択器22に出力さ
れる。12はバスタイミング制御器11の出力で内部状
態ラッチ器18に与えられる。22は複数の内部状態ラ
ッチ器出力19のうち2つをD/A変換器6a、6bに
選択入力するD/A入力選択器である。
第3図にD/A変換器6a、6b、内部状態監視選択器
20、内部状態ラッチ器18、D/A入力選択器22の
具体的な回路の一例を示す。う、ッチ器18、D/A入
力選択器22の具体的な回路−例を示す。ラッチ器18
が回路図では分離して一4同一のIC上に構成できる。
D/A変換器6a、6bは2個に限定されないがマイコ
ン1の容積の許す限り多くすることもできる。
次に動作について説明する。監視したい内部状態のうち
の2つを内部状態監視選択器20によって選択する。選
択制御信号は内部状態監視選択器出力21を通して内部
状態ラッチ器18を制御する。内部状態ラッチ農工8は
アドレスバス9.データバス8及びバスタイミング制御
信号12の情報よりプログラムカウンタ2.汎用レジス
タ3゜ROM4.RAM5のうち指定の部分の状態を選
択、−時記憶する。指定の方法はプログラムカウンタ2
.汎用レジスタ3.ROM4.RAM5の異なるブロッ
クから、2つの特定番地(アドレス)状態を選択するこ
ともできるし、また、1つのブロック(例えばRAM)
の中の2つの特定番地(アドレス)状態を選択すること
もできる。
内部状態ラッチ器の動作例を第2図で説明する。
図において、φ、5YNC,WR,暮はバスタイミング
制御信号12a〜12d、ADDRはアドレスバス9の
内容、DATAはデータバス8の内容である。この例で
は内部状態監視選択器22により、プログラムカウンタ
2の内容と、アドレスADL番地(下位アドレス)のR
AM5の内容(書き込み内容)が選択されている。内部
状態ラッチ器18は5YNC信号の立ち下がりエツジで
アドレスバス9に出現するプログラムカウンタ2の値を
ラッチし、内部状態ラッチ器出力19のうちの1つとし
てLATCH5YNCを一時記憶/出力する。また、ア
ドレスバス9の値がADし番地になった時のデータバス
8に出現するADL番地のRAM5の内容をWR倍信号
立ち上がりエツジでラッチし、内部状態ラッチ器出力1
9のうちのもう1つの出力として、LATCHDATA
を一時記憶/出力する。D/A入力選択器22は内部状
態監視選択器出力21の制御により上記態(LATCH
5YNC)とADL番地のRAMの状態(LATCHD
ATA)を選択し、それぞれを2つのD/A変換器人力
10a、10bに分けて出力する。2つのD/A変換器
6a、5bはこのD/A変換器人力10a、10b (
デジタル値)をアナログ値に変換しマイコン外部にD/
A変換器出力13a、13bとして出力する。
なお、D/A変換器6の構成はR−2R(、ラグ抵抗式
)型の抵抗分圧方式であってもPWM(パルス・ワイド
・モジュレーション)出力であってもかまわない。本実
施例はR−2R型の場合を想定しているが、PWMの場
合はD/A変換器出力13a、13bはPWM波形出力
となり、その後、積分回路を通すことにより第6図13
a13bのアナログ波形が得られる。
次に実際にプログラムを実行させた場合の動作例を説明
する。
第4図はサンプルプログラムのフローチャートである。
同図ia)のメインルーチン(MAIN)においては、
まずプログラムカウンタ2の状態をD/A変換器出力1
3aに、また0000番地のRAM5の内容をD/A変
換器出力13bにそれぞれ出力するように、内部状態監
視選択器20を設定する(手順28)。その後、一定の
時間ウェイトする(手順29)、0000番地のRAM
5内容(COUNTERとラベルをつける)を1つずつ
インクレメントする処理(手順30)を永久ループさせ
る(手順29→手順3〇−手順29・・・・)。一方、
同図(b)の一般の割り込み処理(INT)においては
、第4図(b)に示すように外部割り込み人力17が検
知される毎にC0UNTERの内容をOにクリアする処
理(手順31)を設ける。以上のプログラム及びC0U
NTERデータを第5図に示すMEMORY  MAP
上の番地に割り当て、プログラムを実行させるとD/A
変換器出力13a、13bには第6図のような波形が出
力される。32はC0tJNTERの変化する範囲(ア
ドレス0000+i) 、33はメインルチンのアドレ
ス範囲(F OOO〜FO20)、34は割り込み処理
のアドレス範囲(FFOO〜FF20)である。割り込
みの発生毎にアドレスがジャンプし、C0UNTERの
内容がクリアされているのが、D/A変換器6a、6b
の出力13a、13bとしてオシロスコープ上で容易に
観測できる。
本発明におては、ソフトウェアにより一度監視したいア
ドレスを指定すれば付加した選択器とラッチ器が継続し
て自動的に内容を外部に出力するため、プログラムの増
加が少なくてすむ。また、この発明の構成においては、
D/A変換器を従来の通りソフトウェアで直接内容を制
御できるため、内部状態を外部で監視する必要がない場
合でも、従来どおりの周辺アナログ制御のためのD/A
変換器内蔵シングル千ノブマイクロコンピュータとして
も使用できる。
〔発明の効果〕
以上説明してきたようにこの発明によれは、アドレスバ
ス及びデータバス上に現れたデジタル値をラッチする内
部状態ラッチ器と、この内部状態ラッチ器に監視したい
内容を指定する内部状態監視選択器とをアドレスバス及
びデルタハスとD/A変換器との間に介装したので、R
AM等の内容をマイコンの外部に自由にリアルタイムで
出力して、観測できる。また、限られたサイズを殆ど変
更することなく、数少ないピン数で内部の動作状態をオ
シロスコープ上に読み出しできる。また、ソフトウェア
のデバッグ時に内部状態を自由にモニターでき、本来具
えなかったプログラムの動きが視覚的に捉えることがで
き、他人のプログラムの解析、評価ができる。
【図面の簡単な説明】
第1図はこの発明のマイクロコンピュータの実施例を示
す構成図、第2図はこの発明の動作タイミングを示す図
、第3図は第1図の要部の具体的回路の一例を示す図、
第4図は本発明の詳細な説明するためのフローチャート
、第5図はメモリマツプを示す図、第6図は本発明の結
果を示すクラフ図、第7図は従来のマイクロコンピュー
タの構成図、第8図は従来のマイクロコンピュータの動
作タイミングを示す図である。 l・・・マイクロコンピュータ、2・・・プログラムカ
ウンタ、3・・・汎用レジスタ、4・ROM、5・・・
RAM、6・・・D/A変換器、8・・・データバス、
9・・・アドレスバス、11・・・ハスタイミンク制御
卸器、18・・・内部状態ラッチ器、19・・・内部状
態ラッチ器出力、20・・・内部状態監視選択器、21
・・・内部状態監視選択器出力、22・・・D/A入力
選択器。 代理人 弁理士  宮  園  純 LDM #DATA DL (的ADL) ← ATA MEMORY MAR −一」 平成 3年 7月)二口

Claims (1)

  1. 【特許請求の範囲】 共通のアドレスバス及びデータバスで互いに接続された
    プログラムカウンタ、汎用レジスタ、ROM及びRAM
    等と、前記アドレスバス及びデータバス上に現れる前記
    RAM等へのアクセス信号を制御するバスタイミング制
    御器と、前記アドレスバス及びデータバス上に現れたデ
    ジタル値を取り込んでアナログ値に変換するD/A変換
    器とを備えたマイクロコンピュータにおいて、 前記アドレスバス及びデータバス上に現れたデジタル値
    をラッチする内部状態ラッチ器と、この内部状態ラッチ
    器に監視したい内容を指定する内部状態監視選択器とを
    前記アドレスバス及びデータバスと前記D/A変換器と
    の間に介装したことを特徴とするマイクロコンピュータ
JP2230942A 1990-08-31 1990-08-31 マイクロコンピュータ Pending JPH04111145A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2230942A JPH04111145A (ja) 1990-08-31 1990-08-31 マイクロコンピュータ
GB9112507A GB2247547B (en) 1990-08-31 1991-06-11 Microcomputer
DE4121294A DE4121294C2 (de) 1990-08-31 1991-06-27 Mikrocomputer mit eingebauter DA-Wandlereinrichtung
US08/265,556 US5539919A (en) 1990-08-31 1994-06-24 Microcomputer having function to specify functional block having data to be monitored and to output data as an anaglog signal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2230942A JPH04111145A (ja) 1990-08-31 1990-08-31 マイクロコンピュータ

Publications (1)

Publication Number Publication Date
JPH04111145A true JPH04111145A (ja) 1992-04-13

Family

ID=16915724

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2230942A Pending JPH04111145A (ja) 1990-08-31 1990-08-31 マイクロコンピュータ

Country Status (4)

Country Link
US (1) US5539919A (ja)
JP (1) JPH04111145A (ja)
DE (1) DE4121294C2 (ja)
GB (1) GB2247547B (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5872603A (en) * 1993-10-29 1999-02-16 Sanyo Electric Co., Ltd. Analog circuit controller using signals indicative of control voltage and type of control voltage
DE4338820A1 (de) * 1993-11-13 1995-05-18 Bosch Gmbh Robert Einchip-Mikrorechner
US5912452A (en) * 1997-02-06 1999-06-15 Intermec Corporation Method and apparatus for reading one-and two-dimensional symbols with a linear detector
US6362768B1 (en) 1999-08-09 2002-03-26 Honeywell International Inc. Architecture for an input and output device capable of handling various signal characteristics
CN106292456B (zh) * 2016-09-28 2018-12-07 中山海倍瑞智能软件科技有限公司 单片机ram全局变量监控方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5785137A (en) * 1980-11-17 1982-05-27 Hitachi Ltd Signal processor
JPS595367A (ja) * 1982-07-01 1984-01-12 Hitachi Ltd マイクロプロセツサの動作状態監視装置
JPS6326741A (ja) * 1986-07-18 1988-02-04 Fujitsu Ltd デ−タ処理装置の試験装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4301513A (en) * 1977-08-29 1981-11-17 Hewlett-Packard Company Logic state analyzer with restart and state occurrence qualification
US4202046A (en) * 1978-09-01 1980-05-06 Ncr Corporation Data storage system for storing multilevel signals
US4326192A (en) * 1979-06-11 1982-04-20 International Business Machines Corporation Sequential successive approximation analog-to-digital converter
US4517671A (en) * 1982-11-30 1985-05-14 Lewis James D Apparatus for operational analysis of computers
DE3331572C2 (de) * 1983-09-01 1985-11-21 Hans-Jürgen Prof. Dipl.-Ing. 8560 Lauf Leistner Hochintegrierter Baustein mit reduzierter Anzahl von Anschlüssen zur Signalverarbeitung und/oder -Speicherung
US4975837A (en) * 1984-10-01 1990-12-04 Unisys Corporation Programmable unit having plural levels of subinstruction sets where a portion of the lower level is embedded in the code stream of the upper level of the subinstruction sets

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5785137A (en) * 1980-11-17 1982-05-27 Hitachi Ltd Signal processor
JPS595367A (ja) * 1982-07-01 1984-01-12 Hitachi Ltd マイクロプロセツサの動作状態監視装置
JPS6326741A (ja) * 1986-07-18 1988-02-04 Fujitsu Ltd デ−タ処理装置の試験装置

Also Published As

Publication number Publication date
US5539919A (en) 1996-07-23
DE4121294C2 (de) 1996-02-29
GB2247547A (en) 1992-03-04
GB9112507D0 (en) 1991-07-31
GB2247547B (en) 1994-12-07
DE4121294A1 (de) 1992-03-05

Similar Documents

Publication Publication Date Title
EP0067496B1 (en) Automatic test system
JPH01134541A (ja) 情報処理装置
JPH04111145A (ja) マイクロコンピュータ
JPS63271601A (ja) 出力パルス発生装置
JP3102486B2 (ja) ディジタル保護リレーの解析装置
JPS59123934A (ja) プログラム可能な論理制御装置
JPS595367A (ja) マイクロプロセツサの動作状態監視装置
JPS60237503A (ja) シ−ケンスコントロ−ラの高速処理方式
JPS6324507Y2 (ja)
JP2002374167A (ja) 監視制御のアナログ入力装置
JPS6113978Y2 (ja)
JPH02178886A (ja) データ記録装置
JPH06230806A (ja) プログラマブルコントローラのリモートi/oシステム
JPH01175436A (ja) データフォーマットコンバータおよびかかるコンバータ群を用い装置をチェックおよび試験するための自動システム
RU2150730C1 (ru) Автоматизированная система контроля
JP2553630B2 (ja) データ処理装置
JPS6337436A (ja) プログラム開発支援装置
JPS6091454A (ja) 集積回路
JPH0223422A (ja) 並列演算装置
SU1151962A1 (ru) Микропрограммное устройство управлени
JPH0223424A (ja) 並列演算装置
JPH023829A (ja) プログラム実行時間測定装置
JPS61294503A (ja) 演算ユニツト
JPH0223423A (ja) 並列演算装置の単位演算回路
JPS6017140B2 (ja) デ−タ処理装置におけるマイクロプログラムの実行順序制御方式