Back List


有限オートマトン    2015(#23)


"非ノイマン型" より続く

ある状態と何らかの入力を処理し結果を出力する、そのような仕組みについて、
オートマトン>広義のチューリングマシン>ノイマン型コンピュータ
と、階層をもって整理することがある。この分け方の是非はこれまた難しそうなので横に置いておく。ここでは、「ハードワイヤードステートマシン」と「コンピュータ」とを比較するため、呼び名をそのまま借用することにする。

「ハードワイヤードステートマシン」は、2階層目であって広義のチューリングマシンでないもののひとつ、(出力付き)有限オートマトンに分類することができる。言語理論、正規表現的、などという言葉による解説は、ひとことでこの性質をよく表していると言えるだろう。

(オートマトンではないもの)
-->順序回路(記憶機能)の無いロジック
-->時間が経てば入力に対して出力が1:1で決まる回路
(広義のチューリングマシンではないもの)
-->有限オートマトン
(ノイマン型コンピュータではないもの)
-->非ノイマン型コンピュータ



ステートマシンは、ミーリ・タイプとムーア・タイプとに分類される。共に状態(の遷移)は現状態と新入力との組み合わせで決まるが、出力をどう決定するかが異なる。実際には回路規模や速度が違ってくるが、結果的にはどちらでも良いという場面は実際多く、HDL記述の「クセ」によって選んでしまう事が少なくない。
ムーア・タイプは出力の種類以上に状態が存在する(出力とその順序に合わせて状態を作る)。これに対しミーリ・タイプは同じ状態であっても入力によって出力を変化させるので、状態の数が減る可能性がある。
ムーア・タイプの出力は現状態のマルチプレクスで決まるので、あえてラッチすることはあまりない。一方ミーリ・タイプの出力は現状態と入力との組み合わせで決まるので、回路が複雑になりその遅れへの手当を嫌って一旦ラッチすることが多く、ミーリ・タイプで出力をラッチする記述には2つの見えかたがある。
①状態のalwaysとは別のalwaysで状態と入力から組み合わせてラッチする
②reg宣言した出力ノードを状態のalways中で使う(イベントには記載しない)
ちなみにそえぞれ出力をラッチしない場合は以下のとおり。
①状態のalwaysの外で状態と入力からassignする
②reg宣言しないままのノードを状態のalways中で使う(イベントにも記載が必要)
以下は、ムーア・タイプとミーリ・タイプ(出力は上記ラッチする方の②)の、HDLでの違いの例である。

module seq_circuit(clock, reset, sw1, sw2, sw3, out); 
input clock, reset; 
input sw1, sw2, sw3; 
output out; 
module seq_circuit(clock, reset, sw1, sw2, sw3, out); 
 input clock, reset; 
 input sw1, sw2, sw3; 
 output out; 
 reg [1:0]state; 
 reg out;//@OnlyMearly 
 always@(posedge clock or posedge reset)begin 
 
  ----- Mealy 
  if(reset == 1'b1)begin 
   state <= 2'b00; out <= 1'b0; 
  end 
  else begin 
   if(state == 2'b00)begin 
    if(sw1 == 1'b1)begin 
     state <= 2'b01; out <= 1'b0; 
    end 
   end 
   else if(state == 2'b01)begin 
    if(sw2 == 1'b1)begin 
     state <= 2'b10; out <= 1'b0; 
    end 
   end  
   else if(state == 2'b10)begin 
    if(sw3 == 1'b1)begin 
     state <= 2'b11; out <= 1'b1; 
    end 
    else begin 
     out <= 1'b0; 
    end 
    else begin 
     if(state == 2'b11)begin 
      out <= 1'b1; 
     end 
    end 
   end 
  end 
  ----- 
 
  ***** Moore 
  if(reset == 1'b1)begin 
   state <= 2'b00; 
  end 
  else begin 
   if(reset == 1'b1)begin 
    state <= 2'b00; 
   end 
   else begin 
    if(state == 2'b00)begin 
     if(sw1 == 1'b1)begin 
      state <= 2'b10; 
     end 
    end 
    else if(state == 2'b01)begin 
     if(sw2 == 1'b1)begin 
      state <= 2'b10; 
     end 
    end 
    else if(state == 2'b10)begin 
     if(sw3 == 1'b1)begin 
      state <= 2'b11; 
     end 
    end 
   end 
  end 
  ***** 
 
 end 
 assign out = (state == 2'b11) ? 1'b1 : 1'b0;//@OnlyMoore
endmodule 


Back List














































Back List


非ノイマン型    2015(#22)


ノイマン型という呼び名は年々その定義がぼやけてきているらしいが、一般的には、「プログラムとデータをメモリに記憶し、プロセッサが順次これを出し入れして処理を行うという構成」(したがってハーバードアーキテクチャも含む)くらいに捉えて良いようだ。現在コンピュータと呼ばれる装置はほとんどがこの分類の内側に入っている。コンピュータの大きな特徴のひとつに、その重要な部品が、プロセッサ/メモリ/ソフトウエアと明確に分類されることがある。このことによって、それぞれの部品は独立して健全に発展し、そのおかげでコンピュータは今日の規模にまで成長を遂げた。

一方、非ノイマン型はと言うと、ソルバに有機物や量子ビットなどの物理的な挙動を用いたコンピュータを想像することが多いかもしれない。あるは実際に先行しているCMOSロジック、IBMのSyNAPSEチップ(*1)なども有名である。いずれにしても、「超低消費電力で遥かに高い性能」、このようなイメージは、非ノイマン型という呼び名に託された、ぼんやりとした、しかし大きな期待である。

さて、これらノイマン型/非ノイマン型をひとくくりにコンピュータ(入出力機能を備え多様な動作を内部/外部からプログラムできる装置)として見ると、その外に、プリミティブなロジックの組み合わせによって単一(専用)の計算や順序制御を行うハードワイヤードロジック、例えばDSPの一部やステートマシンなどを据えることができる(非ノイマン型と似た向きの性格を備えており境界は曖昧になってきているがこちらはコンピュータではない)。ハードワイヤードロジックには、限定された課題に対してコンピュータの中間的な性能をより高い性能へと置き換える選択肢、という側面がある。また、制御装置においては、コンピュータとハードワイヤードロジックとの比較は、特に信頼性の観点をもって必ず最初に議論されるべき重要な問題である。 → PLC

→ "有限オートマトン" に続く






*1)
ここ数年IBMは、cognitive(経験的認知に基づく)をキーワードに掲げ、現行ノイマン型のままでビッグデータをハンドリングしそれを現実の課題としながら、一方で、やはりCMOSロジックではあるが非ノイマン型のSyNAPSEチップ(4,096 parallel and distributed cores, interconnected in an on-chip mesh network)に関する研究開発にも力を注いでいる。

Introducing a Brain-inspired Computer
TrueNorth's neurons to revolutionize system architecture
By Dharmendra S. Modha
Six years ago, IBM and our university partners embarked on a quest—to build a brain-inspired machine—that at the time appeared impossible. Today, in an article published in Science, we deliver on the DARPA SyNAPSE metric of a one million neuron brain-inspired processor. The chip consumes merely 70 milliwatts, and is capable of 46 billion synaptic operations per second, per watt–literally a synaptic supercomputer in your palm. 

IBM Research:
Brain-inspired Chip
https://www.research.ibm.com/articles/brain-chip.html


Back List














































Back List


PLC    2015(#21)


三菱電機は、[MELSOFT iQ Works Ver.2] + [MELSEC iQ-F seroes] のCPU基本セット、またはこれにシンプルモーションユニット FX5-40SSC-S を加えて、期間限定のキャンペーンというかたちで提供を開始した。
https://www.mitsubishielectric.co.jp/fa/products/cnt/plc/
欧州における独インダストリー4.0の風圧も利用し、現状では厳しいとみられている同社PLC事業のテコ入れを図る。

同社は10年前から、「eファクトリー」というテーマで、工場でPLCが収集したデータを整理/蓄積し、「分析」としてこれを絵に見せるというサービスを展開してきた。ソリューション化とPLCの復権、両方からFA事業を支援するという二面作戦である。しかしPLC自体は、産業機器の低迷という地盤沈下はもちろん、技術の孤立と技術者不足、工程のロボット(多重/複雑/小型)化、対するマイコンとロジックデバイスや専用回路の低価格化/標準化、センサ一体型チップ、そしてネットワークを用いたPCとの連携、それら多方面からの逆風によって、20世紀には確保していたその立ち位置を見なおさなければならなくなってきた。

1960年代までの米自動車製造工程では、小規模な閉ループのリレーコントローラがそれぞれのマシンで局所的に使われていた。しかしモデルチェンジのサイクルが短くなるにつれ、リレーコントローラの改修コストは徐々に目立つようになってゆく。その後「コンピュータ」が登場しても、それは工場で用いるにはあまりにも汎用的で(何でもできて)、その分プログラムが大規模すぎて、入出力制御が面倒で、動作環境も当時の工場では厳しかった。(現在のPC、マイコンやロジックデバイスの類と比較してはならない。)
それでも米Modicon社は、1970年を前にして、小さな専用コンピュータを利用したシステムを規格化する。中でも単一で汎用性の無いラダー図にユーザインターフェイスを限定したシステムは、特に日本において単純な動作を必要とする製造機械のユーザに対し、このしくみであれば自分たちも前からよく知っていて完全に制御できるのだと、そのような錯覚ではあるが確信をもたらし、製造現場で最も重要とされる「安心」「堅牢」「間便」といった正のイメージを確立した。
しかし実際には、当初より指摘されているとおり、このシステムもプリミティブには普通のノイマンマシン(ハーバードアーキテクチャ含む)が動いているのであり、したがってラダー図であっても、その線は回路の結線などではでなくプログラムの周期的スキャンである(*1)。そして、それが使われるときには基本ファームウエアがプロセッサのほとんどの能力を隠蔽するということこそが、ラダー図のただひとつのキモなのである。見覚えのあるリレーシステムのようなものを画面に見せることによって、「不安」「脆弱」「複雑」といった問題を見えなくしているのだ。とすれば、PLCの「安心」「堅牢」「間便」の実体とは一体何なのか。それは、「PLCという考え方」なのではなく、ソフトウエアでは基本ファームウエアの隠蔽性と一貫性であり、ハードウエアでは端子の機械的および電気的な保護/サージ対策/EMイミュニティ/電源設計/振動対策/熱設計、そして事業戦略では第一に供給とメンテナンスの長期保証、それに部品の選別や購入方法/テストの充実や構造化、これら地道な(しかし必要な)対策の組合わせがその答と言えるだろう(*2)。

つまり現在通用している名称や考え方を用いて言うならば、PLCはいつでも「高機能」「複雑」「不安」「脆弱」に舵を切ることができ、反対にPCやマイコンはいくらでも「安心」「堅牢」「間便」「低機能」になり得るのである。フィールドエラーを許さない製造工程を市場とするならば、いずれも同じように、半分のコストはこれら中間にあるだろう最適な基本ファームウエアを維持することに費やされ、残り半分のコストは地道なハードウエア対策と戦略と運用に費やされことになるはずだ。
堅牢なハードウエアに一貫性のある基本ファームウエアを載せた汎用マイコンシステムと、アップデート機能や通信/連携、それに伴うネット技術までを備えたPLC。これらの間に境界は無い。実際、そういった製品は現在目に見えて増えてきているのである。





*1)
いくつかの現実が、このラダー図の持つ生来の悩みを代弁している。
ひとつは、これは日本(PLC=ラダー図である国)に限るのだが、「PLC技術者」という呼び名の不思議だ。リレーコントローラをまねることによって誰にでも使えるシステムを目指したはずが、元のリレーコントローラとの種の(生まれの)違いが災いし、実際には特殊なルールと方言を覚えた人間にしか使えなくなってしまったという矛盾が、日本にはまだ消化されないまま残っているのである。
もうひとつは、日本やアジア地域よりも付加価値の高い製造工程が必要なヨーロッパでの使われ方だ。複雑で長い動きをする製造装置の制御には状態遷移や構造化の考え方が適しており、これはそのままでノイマンマシンとの親和性が高く、したがってわざわざ実際の動作を塗り換えて見せるラダー図などではなく、CPUに対して直接的で簡単なSFCが主にPLCでは使われている。教育/玩具向けがSFCであることも多い。
かくして現在の日本では、そのあまりにも歪んでしまったラダー図の世界は、マルチプルな工程を求める製造業界からの不満や批判を一身に受けることとなった。このことは自然な流れではあるとしても、PLCというハードウエアや事業モデルまでもがそのあおりを受け疑問視されているのは行き過ぎである。PLC事業者は、鎧をまとった汎用マイコンシステムのFAへの侵攻を迎え撃つためには、未だ残る「ラダー図の世界に安住するPLC技術者」を一掃し、速やかにラダー図から脱却してその負の遺産を完済するとともに、自らのビジネスの本当の価値と正当性を世間に示し問わなければならないだろう。

*2)
車載半導体においても似たような誤解がたまにあるかもしれない。
「車載グレード」とは、よく言われる物性的な温度範囲のことではあまりない。条件の限定とテストの運用や選別によって市場での事故の確率をいかに減らすか、がメインテーマなのである。


Back List