吃什么能治结石| 火龙果是什么季节的水果| 肠道蠕动慢吃什么药| 腹泻吃什么食物好| 哦买噶什么意思| 为什么不能指彩虹| mexican是什么牌子| 皮肤科属于什么科室| 男性更年期吃什么药| 高压偏低有什么危害| 梦见吃饭是什么意思| pms是什么意思| 名节是什么意思| 马头岩肉桂是什么茶| 开五行属性是什么| 女人为什么会喷水| 哺乳期是什么意思| 蓝姓是什么民族| 打一个喷嚏代表什么意思| 记忆力差吃什么药| 碘酒和碘伏有什么区别| 热结旁流是什么意思| 一什么雪| 脾功能亢进是什么意思| 牙髓是什么| 布施什么意思| 什么经验| o型血和ab型血生的孩子是什么血型| 没出息什么意思| 五行中什么生水| 壬水是什么水| 暗财是什么意思| 什么叫自闭症| 为什么摩羯女颜值都高| 孕妇有血窦要注意什么| 生物冰袋里面是什么| 女性内分泌失调有什么症状| 摄政王是什么意思| 吃什么东西容易消化| 子午相冲是什么生肖| 肾结石吃什么水果最好| 酵母菌属于什么菌| 梅花肉是什么肉| 肝阴不足吃什么中成药| 爱屋及乌是什么意思| 神经系统由什么组成| 三七有什么功效和作用| 什么人容易得精神病| 插管是什么意思| 恶露是什么| 太上老君的坐骑是什么| 什么是资本运作| 什么是根管治疗牙齿| 家财万贯是什么动物| 双生痣是什么意思| 喧宾夺主什么意思| 巨蟹座有什么特点| 慢性疾病都包括什么病| 防晒隔离什么牌子好| 属蛇的五行属什么| phr是什么词性| 酉时是什么时候| 脚后跟麻木是什么原因| 甲钴胺有什么副作用| paris是什么牌子| 突然嗜睡是什么原因造成的| 飞廉是什么意思| 很困但是睡不着是什么原因| 上火耳鸣吃什么药最好| 10月是什么星座| 凉栀是什么意思| 加尿素起什么作用| 喝苦荞茶有什么好处和坏处| 火字旁跟什么有关| 喝酒前吃什么药| 仙人掌能治什么病| 喝水都长肉是什么原因| 小龙虾不能和什么一起吃| 对什么有好处的英文| 霍启刚家族做什么生意| 6月27号是什么星座| 舌头伸不出来是什么原因| barbour是什么牌子| 为什么叫老鸨| 憋气2分钟算什么水平| 尿酸高是什么原因造成的| 注会什么时候考试| pm2.5是什么意思| 尿液少是什么原因| 什么叫保守治疗| 县武装部长是什么级别| 竹荪是什么| 胃酸吃什么能马上缓解| 孩提是什么意思| 神奇是什么意思| 嘚是什么意思| 痛风不能吃什么食物表| 胃疼和肚子疼有什么区别| 西瓜和什么相克| 回字是什么结构| 三羊开泰是什么意思| 带状疱疹有什么症状| 7.9什么星座| 天丝是什么材质| 月经量少是什么原因啊| 心衰应该注意什么| 玛瑙是什么| 乳房疼痛吃什么药| 更年期吃什么好| 心脏呈逆钟向转位什么意思| 三文鱼长什么样| 15岁可以做什么兼职| 辛未日五行属什么| 胃火旺怎么调理吃什么药最好| 什么人不能摆放大象| forever21是什么牌子| 1991年属什么| 肚子疼拉稀是什么原因| 为什么被蚊子咬了会起包| 隔夜茶为什么不能喝| 狗鼻子为什么是湿的| 美元长什么样子图片| 凤毛麟角是什么意思| 两个禾念什么| 什么蔬菜补钾| 为人是什么意思| rh血型鉴定阳性是什么意思| 二氧化钛是什么东西| 狗狗蛋蛋红肿是什么原因| 骨扫描是检查什么| 抵押什么意思| 心慌意乱是什么意思| 周瑜为什么打黄盖| 气血虚吃什么药| 淘宝预售是什么意思| 蛇蝎心肠是什么生肖| 早泄是什么症状| 高血压可以喝什么饮料| 12月23日是什么星座| 砖红色是什么颜色| 口关读什么| 檀是什么意思| 胎膜早破是什么原因引起的| 胃窦隆起是什么意思| 小孩老是打嗝是什么原因| 法医是干什么的| 炖肉放什么容易烂| 冰岛说什么语言| 千山暮雪结局是什么| 腰椎骶化是什么意思| 子字属于五行属什么| 车震是什么| 阴道口痒用什么药| 小腿痛是什么原因| 为什么老是| 黎山老母什么级别神仙| 教头菜有什么功效| 知了猴有什么营养| 反酸是什么症状| 赖氨酸是什么| 圣经是什么| 瑶字五行属什么| 一个火一个旦读什么字| 碘伏是什么| 吃什么降羊水最快| 焦虑症是什么原因引起的| 硬下疳是什么意思| 你的生命有什么可能| 罗勒叶在中国叫什么| 爱情的本质是什么| 异国他乡的意思是什么| 1988年属什么| 淋巴是什么| 小狗什么时候断奶| 日入是什么时辰| 芙蕖是什么意思| 鲤鱼吃什么| 女生月经不规律的原因是什么| rush是什么东西| 绿色痰液是什么感染| 上胸围90下胸围80是什么罩杯| 大手牵小手是什么菜| 贫血是什么原因引起的| 颈部有肿块挂什么科| 属猪本命佛是什么佛| cbd是什么意思啊| 6.1什么星座| 阴茎痒是什么原因| 微创是什么| 5w是什么意思| 薄幸是什么意思| b超回声不均匀是什么意思| 花团锦簇是什么意思| 草莓印是什么| 桃花的花语是什么| 头发油性大是什么原因| 佃农是什么意思| 滑石粉是什么东西| 小狗的耳朵像什么| 痔疮用什么药最好| 总胆汁酸高是什么意思| 绿对什么| 上皮细胞一个加号什么意思| 芙蓉花长什么样| 甲状腺功能亢进是什么意思| 无妄是什么意思| 慢性鼻炎吃什么药| 动脉导管未闭对宝宝有什么影响| 葛根和什么搭配泡水好| 小本生意做什么好赚钱快| 金牛男最烦什么女孩| 沙和尚是什么生肖| 情感什么意思| 精神科主要看什么病| 左脸颊长痘是什么原因| 吃豌豆有什么好处| 帛字五行属什么| 消化不好吃什么药最好| 银手镯对身体有什么好处| 心脏早搏有什么危害| 终身是什么意思| 尿黄吃什么药| 吃辣椒有什么好处| 梗塞是什么意思| 感同身受什么意思| 格力空调se是什么意思| modern是什么牌子| 老是掉发是什么原因| 血糖高适合吃什么主食| 姨妈期间可以吃什么水果| 拉肚子应该挂什么科| 淡是什么意思| 吃了头孢不能吃什么| 一什么牛| 朱雀是什么| 高血压吃什么药最好| 狗牯脑茶属于什么茶| 九品芝麻官是什么级别| 唾液臭是什么原因| 什么是飞蚊症| 肝回声细密是什么意思| 画龙点晴是什么生肖| 梦见穿山甲预示着什么| 梦见山体滑坡是什么意思| 绿主是什么意思| 三文鱼又叫什么鱼| 睡觉时头晕是什么原因| 专员是什么职位| 血糖高适合吃什么蔬菜| 葡萄是什么意思| sneakers是什么意思| 胃不好可以吃什么水果| 什么样的男人值得托付终身| 胃下垂是什么症状| 上海的市花是什么| 一般手脚慢进什么工厂| 肠道蠕动慢吃什么药| vdo是什么牌子| 唇亡齿寒什么意思| 发情是什么意思| 家财万贯是什么动物| 打破伤风针挂什么科| 什么是低聚果糖| 960万平方千米是指我国的什么| 百度

海淀启动全民国家安全教育日集中宣传教育活动

百度 究其原因,在西部,以第二产业为主导的发展模式形成了“过重”的产业结构偏向。

Explicit Data Graph Execution あるいは EDGE とは、命令セットアーキテクチャ (ISA) であり、個々の命令を結合して「ハイパーブロック」と呼ばれる容易に並列実行可能なグループにまとめ、膨大な数の実行ユニットで実行させることで、 一般的なプロセッサ(x86など)に対して演算性能を大きく向上させることを目指している。 現代的なCPU設計における並列実行は、8個程度の実行ユニットと1~4個程度のコアで頭打ちになっているが、EDGE の設計では数百個のユニットを内部的に持てるようにし、これまでの設計に対して数百倍の高速化を実現しようとしている。EDGE の概念は2012年までに1チップで1TFLOPSを実現させることを目指した米国国防高等研究計画局の Polymorphous Computing Architectures プログラムの下、テキサス大学オースティン校が牽引している[1]

これまでのCPU設計

編集

ほぼ全てのコンピュータプログラムは、データをある形態から別の形態へと変換する命令列から成り立っている。CPUの目的は、データの変換を可能な限り高速に行って性能を向上させることであり、CPUがサポートする命令セットは変換が高速になるような意図で設計されている。コンピュータの発展に伴って、コンピュータ内部の様々な要素の相対的なコストが大きく変化し、それによって命令セットの設計に大きな転換期が何度か訪れた。

1960年代にはメモリが相対的に高価であり、CPU設計者は貴重なメモリ資源を有効に活用できるよう、内部に命令とデータを密に詰め込んだ命令セットを開発した。たとえば、 A と B を加算し、C に出力 という命令は A と B を主記憶、インデックス、レジスタなど様々な場所から取り出すために異なる種類のものが提供されていた。異なる命令が提供されることで、プログラマは最もメモリ消費量が抑えられる命令を選択することができた。全ての命令に任意のデータアクセス方法を選択できるようにした命令セット(たとえばMotorola 68000)は「直交的」と呼ばれ、設計の模範とされた。こうした命令セットは様々なアクセス方法を提供するため複雑化し、今日ではCISC(複雑な命令セットを備えたコンピュータ)と呼ばれている。

1970年代の後半までにメモリは安価になったが、相対的に性能が低くなり、CPUはメモリの数倍の速度で動作できるようになった。その結果、直交性によりCPUはわずかなメモリ上のスペースを節約できるものの、性能の向上には寄与せず、もはや直交性は重要ではなくなった。 この時期にはRISCの設計思想が繁栄し、直交的な命令はほとんどなくなってデータを操作する命令はレジスタとのみやり取りするようになった。命令を減らしたことで命令デコーダが簡潔なものになり、CPUには大きな空きスペースが生まれた。このスペースはレジスタを大きく増やすために用いられた。データをレジスタ内に保持することでアクセスが高速になり、1990年代まで、RISC設計のCPUはCISC設計のものの性能を上回った。この差は圧倒的なもので、その後x86などの現代的なCISC設計のCPUは、実質的にRISCのエンジンとなり、内部で CISC 命令を RISC 的な形式に変換して動作するようになった。

1990年代にはチップの設計技術、製造プロセスが進歩し、安価なプロセッサにすら実現可能な全ての機能を盛り込むことができる段階に達した。さらなる性能向上のため、CPUの設計は内部的に並列性を獲得するようになった。これは "スーパースケーラ" と呼ばれる。どんなプログラムでも、互いに関連のないデータを処理する命令があり、演算ユニットを追加すれば、これらは同時に実行することができる。CPUに追加された新たな要素「スケジューラ」が、関連のないデータを探して演算ユニットに投入し、出力結果を並べ替える。外部には通常に実行したかのように見える。

スーパースケーラの設計で獲得できる並列性の度合いは、スケジューラが命令同士の依存関係を調べることのできる数に依存する。多数の命令を調べることができれば並列に実行可能な命令を見つける可能性が高まるが、これにはスケジューラー自体を複雑にする以外にない。膨大な労力が費やされたが、これまでのRISC / CISC命令セットでは演算ユニットの数は3?4で飽和している。

他には、特定の種類のデータを処理する命令を見つけて専用の処理ユニットを追加することで、システムの性能を向上させることができる。浮動小数点演算ユニットや、最近ではSIMDユニットの追加はこうした方法である。この方法の問題はCPUが汎用的ではなくなることで、たとえば全てが浮動小数点演算であるようなプログラムを実行すると、FPUは全力で動作し続けるが他のユニットは遊んでしまう。

現代的なCPU設計で、より近年問題になっているのはレジスタとのやり取りに伴う遅延である。CPUのダイサイズは過去数十年間概して変わっていないが、各機能ユニットは様々な機能ユニットが追加されにつれどんどん小さくなっている。すなわち、機能ユニットとレジスタとの相対的な距離はどんどん長くなっている。かつてメインメモリとの通信による遅延を抑えるために生まれたレジスタが避けるべき遅延となってきている。

かつてメモリが安価になり通信による遅延が問題になったことがCISCからRISCへの急激な変化を引き起こしたように、 CPUの設計者は、並列化による性能向上の問題とレジスタの遅延の問題が、基本的に命令セットを切り替えることになるかどうかについて検討している。

新しい命令セットを導入しようという試みの一つがItaniumに代表されるVery Long Instruction Word (VLIW) アーキテクチャである。VLIWはスケジューラのロジックをCPUから移動し、命令列を検査するのに十分な時間とメモリを使用することが可能なコンパイラで実行する。この「静的配置、静的発行」という実行モデルは遅延が全て事前に既知である場合にはうまく動作するが、実際にはコンパイラが命令語を命令で満たすことは困難な挑戦であることがわかってきた[2]。たとえば、キャッシュにデータがあれば5サイクルかかる命令も、なければ数百サイクルかかる可能性があるが、コンパイラには実行中にどのデータがキャッシュに入っているかを知る術はない。こうした遅延は、コンパイルするプログラムとは何の関係もないシステムの全体的な負荷やその他の要素によって定まるものである。

理論

編集

既存のCPU設計における性能上のボトルネックは、データとそれを処理する命令が、メモリ上に分散していることである。メモリ性能は全体の性能を規定し、過去の「動的配置、動的発行」は、性能の限界に達しているようである。VLIWは「静的配置、静的発行」モデルを用いたが、プログラムの実行時の振る舞いを予測し、あらかじめ適切にスケジュールしておくことが困難であるため、実現困難なことがわかってきている。

EDGEアーキテクチャは「静的配置、動的発行」設計に基づく新しい種類のISAである。EDGEシステムはソースコードを静的に割り当てられた数百?数千の命令からなる「ハイパーブロック」を形成するようにコンパイルし、ハイパーブロックが CPU により動的にスケジュールされる。EDGEは、VLIWのコンパイル時にデータの依存関係を見つけるという概念と、データが利用可能になったときに命令を実行すると言うスーパースケーラのRISCの概念の、それぞれの利点を組み合わせて用いる。

現実世界の大半のプログラムは、データと命令の関連は明示的である。プログラムは(時代によって異なるが)サブルーチン、手続き、メソッドと呼ばれる開始点、終了点が明確に定義されたデータの入出力を行うブロックに分割される。この情報は高級言語がより単純なプロセッサの命令セットに変換される際に失われる。しかし、この情報は非常に役立つもので、現代的なコンパイラはこれを "基本ブロック (basic block)" として一般化し、レジスタを介したメモリアクセスを最適化する際に基本ブロックの特定を行う。命令のブロックは制御命令を含んでおらず、述語命令を含むことができる。命令ブロック間や記憶領域とのデータの流れを示すことで、これらのブロックを用いてデータフローグラフが生成される。

EDGEの基本的な考え方は、こうしたブロックの操作を命令セットレベルでサポートすることである。基本ブロックはメモリへのアクセスを詳細に定義された方法で行うので、プロセッサは関連したブロックをロードし、スケジュールし、あるブロックの出力をそれを用いるブロックに直接与えることができる。これによって汎用の大域的なレジスタファイルが必要なくなり、コンパイラがレジスタへのアクセスをスケジュールする作業が全体として簡略化される。その代わり、各基本ブロックは専用のローカルレジスタを持ち、コンパイラはより単純なブロック内部での最適化を行う。

EDGEシステムは、1960 / 70年代、また1990年代のデータフロー言語によく似ている。データフローコンピュータはプログラムを、ある命令がその処理対象が利用可能になると実行可能になることを規定する「データフロー着火規則」に基づいて実行する。EDGE のようにデータを分離するため、データフロー言語は本質的に並列的であり、データフローへの関心は一般的なコンピュータの問題に対する大規模な並列化方法への関心につながった。当時存在したCPU技術を用いた研究結果では、データフローマシンが、CPUが十分並列的に動作できるほど近くにデータを保持することが難しいとされたが、それはまさに現在の製造技術を用いて数百個のCPUとメモリを一つのダイに配置れば解決できるボトルネックである。

データフローシステムが全く受け入れられなかったもう一つの理由は、当時のコンパイラがC++のような必須の言語に対応していなかったことである。代わりに、ほとんどのデータフローシステムはPrographのような専用の言語を用いており、商業的な関心を失わせた。この10年のコンパイラの研究によりこうした問題の多くは解決しており、またデータフローとEDGEの大きな違いとして、EDGEの設計は一般的に用いられている言語に対応することを意図している。

EDGE設計に基づく CPUは、一つ以上(現実的には数百)の小さなブロック実行エンジンと、専用のローカルレジスタを持つ。各ユニットは専用のブロック間コミュニケーションリンクで接続されている。コンパイラによってブロックに付加される情報により、スケジューラはブロック全体を検査して、入力データが利用可能であれば実行エンジンに送る。ブロック内の個別の命令を検査する必要はない。

複雑さをわずかに増やすだけで、スケジューラは複数のブロックを検査してあるブロックの出力が他のブロックの入力となることを判断し、これらのブロックをユニット間の通信による遅延を減らすよう配置することができる。現代的な並列性を抽出するために CPU が数千の命令を検査することができるなら、EDGEでは同等の複雑さで、それぞれ数百の命令からなる数千のハイパーブロックを検査することができる。この操作がEDGEの名前の一部「グラフ」の元になっており、グラフとはブロック間のデータの流れを元にブロック同士を接続したものである。

EDGEの概念におけるもう一つの利点は、大規模に拡大可能な点である。ローエンドの設計では、ブロック実行のエンジンを一つしか持たず、スケジューラもプログラムから呼び出すとおりにブロックをエンジンに送出するだけ、といった構成にすることができる。デスクトップ向けのEDGEプロセッサの設計では、数百個のブロック実行エンジンを備えるだろう。決定的な点は、二つの設計の違いは、チップの物理的な配置と、スケジューラのみが知っている情報だけであり、実行ユニットが一つのマシン用に記述されたプログラムは、デスクトップ用のものでも全く同じように(ただし数千倍高速に)動作するという点である。また消費電力も劇的に改善され、その管理も簡潔なものになる。消費電力上の必要に応じて各ブロックの実行エンジンを有効無効にすることができ、それが電力消費に正比例する。

EDGEの概念で最も優れている点は、いかなる種類のデータ処理にも適合するという点である。CPUの異なる部分が異なる種類のデータ専用になっている現代のCPU設計とは異なり、EDGE CPUは通常ひとつの種類の ALU的な演算ユニットからなる。様々なプログラムを同時に実行するデスクトップのユーザーは、浮動小数点の演算のみ用いる一つのプログラムを実行する科学技術演算のユーザーと同じ恩恵を受ける。いずれのケースでも、スケジューラは各ブロックを実行ユニットにロードするだけである。個別のブロック実行エンジンの性能は専用のFPUには到底及ばないが、これを膨大な並列化によって圧倒しようとするものである。

実装

編集

テキサス大学オースティン校は、TRIPS と呼ばれるEDGE命令セットアーキテクチャを開発している。EDGEを動作させるCPUのマイクロアーキテクチャを簡略化するため、TRIPSのハイパーブロックに制約を設けている。

  • 最大128命令
  • 最大32のロード/ストア
  • 32のレジスタバンクに対する読み書き
  • ブロックの終端を示す分岐を一つ持つ

TRIPSコンパイラは静的に命令をハイパーブロックにまとめるが、ブロックを特定のALUで動作するようにする。TRIPSのプログラムは実行するアーキテクチャの実装に若干の依存が生じる。

2003年、TRIPSのプロトタイプが作成された。これは4x4のグリッドに配置された16個の実行エンジンと、1MBのローカルキャッシュ、転送メモリを備えていた。シングルチップの TRIPS は、カナダでIBMが130 nmプロセスで製造し、上記のグリッドエンジンを二つ、共有のL2キャッシュと様々なサポートシステムを備えていた。このチップ4つと1GバイトのRAMが実験用のドータカードに乗せられていた。

TRIPSチームは最終的な目標をシングルチップで1TFLOPSの性能を持続的に出すことに設定している。これは、2008年におけるハイエンドのCPU性能の約 50 倍に当たる(デュアルコア Xeon 5160は17G FLOPSの性能)。

CMUのCASHは "Pegasus" と呼ばれる中間コードを生成するコンパイラである。CASHとTRIPSはよく似た考え方であるが、CASHは特定のアーキテクチャを対象としたコードを生成するのではないため、ブロックのレイアウトに制約はない。


WaveScalar

編集

ワシントン大学WaveScalarアーキテクチャは、実質的にEDGEと似ているが、命令を "wave" に静的に配置しない。替わりに特殊な命令 (phirho) を用いてwaveの境界をマークし、wave単位のスケジューリングを可能にする[3]

参考資料

編集

文献

編集
  1. ^ University of Texas at Austin, "TRIPS : One Trillion Calculations per Second by 2012"
  2. ^ W. Havanki, S. Banerjia, and T. Conte. "Treegion scheduling for wide-issue processors", in Proceedings of the Fourth International Symposium on High-Performance Computer Architectures, January 1998, pg. 266?276
  3. ^ "The WaveScalar ISA"

論文

編集
低密度脂蛋白高是什么意思 什么是果糖 为什么会打雷 文竹的寓意是什么 胸膈痞闷是什么症状
抗美援朝什么时候结束 嬴姓赵氏是什么意思 孩子经常流鼻血是什么原因 callme是什么意思 早饱是什么意思
婴儿蓝是什么颜色 女红是什么意思 一直发低烧是什么原因 山楂和什么泡水喝最好 落红是什么意思
银耳和什么一起煮最好 什么鱼最迟钝 半夜流鼻血是什么原因 网球大满贯什么意思 贪嗔痴是什么意思
学字五行属什么hcv9jop6ns3r.cn sp是什么hcv9jop7ns0r.cn 牛腩是什么部位的肉hcv8jop8ns1r.cn 口腔扁平苔藓吃什么药好得快hcv8jop4ns7r.cn 血管造影是什么检查hcv7jop9ns7r.cn
正对什么bjcbxg.com 手上的月牙代表什么意思hcv7jop6ns7r.cn 血小板升高是什么原因gysmod.com 寄大件用什么物流便宜hcv8jop5ns2r.cn 做梦梦到别人死了是什么征兆hcv9jop0ns0r.cn
抗环瓜氨酸肽抗体高是什么意思mmeoe.com 什么叫皈依hcv7jop7ns3r.cn 低钾会有什么症状hcv8jop8ns6r.cn 肝硬化吃什么食物好xscnpatent.com 失眠吃什么hanqikai.com
检查肠胃做什么检查hcv9jop0ns0r.cn 乡镇派出所所长是什么级别hcv8jop5ns7r.cn 什么的桃花hcv7jop7ns2r.cn 量程是什么hcv7jop7ns3r.cn 阑尾炎是什么病hcv8jop0ns8r.cn
百度