上述したIntel社の技術は、マルチコアプロセッサにおけるメモリーアクセスの課題を解決する上で、非常に参考になる方法だといえる。それ以外にも、各企業からさまざまなメモリーアクセス技術が紹介された。
■共有メモリーの階層化
米NVIDIA社のGPU「8シリーズ」は、同社がSP(streaming processor)と呼ぶプロセッサコアを128個集積したものだ。8個のSPから成るSM(streaming multiprocessor)をチップ全体で16個備える。個々のSMは1.35GHzで動作し、全体では32ギガFLOPSの演算能力を実現。768個のスレッドを取り扱うことができる。その結果、GPUとしては1万2288個のスレッドを取り扱うことが可能だ。
このプロセッサにおいてもメモリー帯域を確保する工夫が施されている。1つのSMには16Kバイトのローカルメモリーを用意した上で、2個のSMごとにL1共有メモリーを用意する。さらに、メモリーブロックごとにL2共有メモリーを備えている。これらの共有メモリーにより、外部メモリーへのアクセス時に発生する遅延を隠蔽し、メモリー帯域を確保している。
■マルチクライアントのDRAMコントローラ
米Freescale Semiconductor社は、用途の異なる3つのコアを備えるマルチコアプロセッサ「MPC5121e」の詳細を明らかにした。このプロセッサは、POWERアーキテクチャのプロセッサコア「e300」とグラフィックスアクセラレーションコアの「MBX」、マルチメディアアクセラレーションコアの「AXE」を備えるマルチコアSoC(system on chip)である。用途の異なるプロセッサコアを集積するヘテロジニアスなマルチコアプロセッサ構成にすることで、処理の分担と効率化を図っているという。
このプロセッサにおいても、3つのコアのそれぞれから、外部メモリーへのアクセスが発生する。そのため、そのアクセスを効率的に行う工夫が施してある。その工夫の1つは、個々のコアから独立してアクセスすることが可能なマルチクライアントDRAMコントローラを備えていることだ。
このコントローラは、遅延を少なくするための160バイトの書き込みバッファ、アクセスの優先度を仲裁する機能、オープンしているメモリーページに対する優先アクセス機能、同時に8つのメモリーページをオープンする機能などを備える。これらの機能によって、このDRAMコントローラは、最大1.1ギガバイト/秒(シュミレーション上の値)のメモリー帯域を実現するという。
・メモリーアクセスの調停
ルネサス テクノロジは、車載向け画像認識エンジンを備えたナビゲーションシステム向けのプロセッサ「SH-Navi2V」の詳細を発表した。
同製品は、CPUコア「SH-4A」と高性能の画像認識エンジン「IMP」を備える。IMPは、画像認識アルゴリズムを高速に処理するために最適化されており、16個のGSEU(gray scale search engine unit)を備える。GSEUは1クロックで8個の命令を処理することが可能である。300MHzで動作するため、IMP全体としては38.4ギガ命令/秒の性能が実現される。
このプロセッサにも、メモリーアクセスの効率化を図る機能が盛り込まれている。それは、独自の手法を用いたメモリーアクセス調停機能だ。具体的には、ハードリアルタイム処理とソフトリアルタイム処理に分けて時分割でメモリーアクセスを許可する仕組みとしている。これによってハードリアルタイム処理のメモリーアクセスがソフトリアルタイム処理に邪魔されないようになっている。
■外部アクセス遅延の隠蔽
米Stream Processors社の「Storm-1 SP16HP」は、ストリーム処理型のアーキテクチャを採用したプロセッサである。16個のレーンのDPU(data parallel unit)と2つのMIPS系プロセッサコアで構成され、個々のレーンは、1個のコミュニケーションユニット、5個の32ビットALU(arithmetic logic unit)、4個のロード/ストアユニット、304個の32ビットレジスタ、256Kバイトのレジスタファイルなどを備える。2つのMIPS系プロセッサコアは、一方がLinuxなどのシステムOSとI/O制御の処理を担い、もう一方がDPUを管理する。700MHz動作で112ギガMAC/秒の高い演算能力を備えている。
Storm-1 SP16HPにも、広いメモリー帯域の確保と遅延の隠蔽という課題に対処するための工夫が盛り込まれている。同プロセッサでは、レーン内に大量のレジスタを配置し、そこにアクセスすることによってこの課題を解決している。演算ユニットが外部メモリーに直接アクセスするのではなく、レーン内のレジスタに対してのみデータのやりとりを行うのだ。レーン内のレジスタと演算ユニットは約1テラバイト/秒の帯域で接続されている。
この方式でも、レジスタから外部メモリーへのアクセスは必要となる。この点については、ランタイムDMAによって解決している。ランタイムDMAは、アプリケーションソフトウエアのコンパイル時に外部メモリーとレジスタ間のデータのやりとりを最適化して外部メモリーとレジスタの同期を動的にとる。このランタイムDMAによって、データが必要になる前に外部メモリーからレジスタにデータを読み込むといったことが行え、外部メモリーへのアクセス遅延を隠蔽することが可能になる。
Copyright © ITmedia, Inc. All Rights Reserved.