バスエラー (英: bus error) とは、コンピュータなどのバスへのアクセスに、何らかの問題があるため、読み書きのリクエストに応じられない、といったようなエラーである。 要因はおおざっぱに、論理的なもの(ソフトウェア的なもの)と物理的なもの(ハードウェア的なもの)に分けられる。論理的なものとしては、セグメンテーション違反やアラインメント違反(後述の「不整列アクセス」)など、物理的なものとしては、コンピュータの検出した一般的なデバイスが故障することが原因でも起きることがあるほか、まれにコンピュータハードウェアが物理的に壊れたことを示すことがある。 いずれにしても、詳細や細かい分類の違いはハードウェアおよびオペレーティングシステムのアーキテクチャや実装によって異なる(場合によっては、プロセッサの提供元とオペレーティングシステムの提供元で違う用語を使っているようなこともあるだろう)。いくつかの例を詳解する。 バスエラーが発生すると、POSIX環境ではSIGBUSのシグナルが送信される。

Property Value
dbo:abstract
  • バスエラー (英: bus error) とは、コンピュータなどのバスへのアクセスに、何らかの問題があるため、読み書きのリクエストに応じられない、といったようなエラーである。 要因はおおざっぱに、論理的なもの(ソフトウェア的なもの)と物理的なもの(ハードウェア的なもの)に分けられる。論理的なものとしては、セグメンテーション違反やアラインメント違反(後述の「不整列アクセス」)など、物理的なものとしては、コンピュータの検出した一般的なデバイスが故障することが原因でも起きることがあるほか、まれにコンピュータハードウェアが物理的に壊れたことを示すことがある。 いずれにしても、詳細や細かい分類の違いはハードウェアおよびオペレーティングシステムのアーキテクチャや実装によって異なる(場合によっては、プロセッサの提供元とオペレーティングシステムの提供元で違う用語を使っているようなこともあるだろう)。いくつかの例を詳解する。 存在しないアドレスへのアクセスCPUはソフトウェアによってある特定の物理メモリアドレスに対して読み書きを行うよう命令される。したがって、CPUはこの物理アドレスをアドレスバスに設定し、CPUに接続されている他のすべてのハードウェアに対して結果を返すように要求する。もし、この指定のアドレスに対してなんらかのハードウェアが返答するならばCPUは結果を受け取る。もし反応するハードウェアが何もなければCPUは例外を発生させ、要求された物理アドレスはコンピュータシステム全体として認識できないという合図を出す。これは、単に「物理」メモリアドレスのみで機能されることに注意する。ソフトウェアが未定義の仮想メモリアドレスに対してアクセスを試みると、CPUは通常バスエラーよりむしろセグメンテーション違反を発生させるだろう。不整列アクセス (misaligned memory access / unaligned memory access)たいていのCPUはバイト単位でアドレッシングを行い、それぞれ固有のメモリアドレス1バイトは8bitからなる。たいていのCPUは個々のメモリアドレスから単独のバイトデータにアクセスすることができるが、より大きな単位(16bitや32bit、64bitなど)を特別な境界、例えば、16bit(番地が2の倍数すなわち0, 2, 4, ...の場合は整列されているが、そうでない1, 3, 5, ...は整列されていない)や32bit(番地が4の倍数すなわち0, 4, 8, 12, ...の場合は整列されているが、その他は整列されていない)に整列されることなしにアクセスすることは通常できない。 CPUは普通どんな時もデータバス幅いっぱいにデータをアクセスする。バイトデータにアクセスするために、CPUはデータバス幅いっぱいにメモリアクセスをして、ここのバイトをマスクしたりシフトしたりする。これは非効率的ではあるが、特に順番に処理を行うたいていのソフトウェアにとって本質的な特性だとして大目に見られている。バイトではなく、2つのアライメントにまたがる程より大きな単位のデータの場合は、データバスで2回以上データを取ってくる必要がある。CPUがサポートしていれば可能だが、この機能は機械語レベルで直接必要になることはめったにないので、CPU設計者は普通このような実装を避け、その代わりに不整列メモリアクセスとしてバスエラーを発行する。CPUのメモリアクセス機構とコンパイラの進歩により、以前よりも問題として目立たなくなってきている。多くの分野で64bit CPUへの移行が行われ、ワード幅が増えた関係で、バスエラーが多発しやすくなっている。 バスエラーが発生すると、POSIX環境ではSIGBUSのシグナルが送信される。 (ja)
  • バスエラー (英: bus error) とは、コンピュータなどのバスへのアクセスに、何らかの問題があるため、読み書きのリクエストに応じられない、といったようなエラーである。 要因はおおざっぱに、論理的なもの(ソフトウェア的なもの)と物理的なもの(ハードウェア的なもの)に分けられる。論理的なものとしては、セグメンテーション違反やアラインメント違反(後述の「不整列アクセス」)など、物理的なものとしては、コンピュータの検出した一般的なデバイスが故障することが原因でも起きることがあるほか、まれにコンピュータハードウェアが物理的に壊れたことを示すことがある。 いずれにしても、詳細や細かい分類の違いはハードウェアおよびオペレーティングシステムのアーキテクチャや実装によって異なる(場合によっては、プロセッサの提供元とオペレーティングシステムの提供元で違う用語を使っているようなこともあるだろう)。いくつかの例を詳解する。 存在しないアドレスへのアクセスCPUはソフトウェアによってある特定の物理メモリアドレスに対して読み書きを行うよう命令される。したがって、CPUはこの物理アドレスをアドレスバスに設定し、CPUに接続されている他のすべてのハードウェアに対して結果を返すように要求する。もし、この指定のアドレスに対してなんらかのハードウェアが返答するならばCPUは結果を受け取る。もし反応するハードウェアが何もなければCPUは例外を発生させ、要求された物理アドレスはコンピュータシステム全体として認識できないという合図を出す。これは、単に「物理」メモリアドレスのみで機能されることに注意する。ソフトウェアが未定義の仮想メモリアドレスに対してアクセスを試みると、CPUは通常バスエラーよりむしろセグメンテーション違反を発生させるだろう。不整列アクセス (misaligned memory access / unaligned memory access)たいていのCPUはバイト単位でアドレッシングを行い、それぞれ固有のメモリアドレス1バイトは8bitからなる。たいていのCPUは個々のメモリアドレスから単独のバイトデータにアクセスすることができるが、より大きな単位(16bitや32bit、64bitなど)を特別な境界、例えば、16bit(番地が2の倍数すなわち0, 2, 4, ...の場合は整列されているが、そうでない1, 3, 5, ...は整列されていない)や32bit(番地が4の倍数すなわち0, 4, 8, 12, ...の場合は整列されているが、その他は整列されていない)に整列されることなしにアクセスすることは通常できない。 CPUは普通どんな時もデータバス幅いっぱいにデータをアクセスする。バイトデータにアクセスするために、CPUはデータバス幅いっぱいにメモリアクセスをして、ここのバイトをマスクしたりシフトしたりする。これは非効率的ではあるが、特に順番に処理を行うたいていのソフトウェアにとって本質的な特性だとして大目に見られている。バイトではなく、2つのアライメントにまたがる程より大きな単位のデータの場合は、データバスで2回以上データを取ってくる必要がある。CPUがサポートしていれば可能だが、この機能は機械語レベルで直接必要になることはめったにないので、CPU設計者は普通このような実装を避け、その代わりに不整列メモリアクセスとしてバスエラーを発行する。CPUのメモリアクセス機構とコンパイラの進歩により、以前よりも問題として目立たなくなってきている。多くの分野で64bit CPUへの移行が行われ、ワード幅が増えた関係で、バスエラーが多発しやすくなっている。 バスエラーが発生すると、POSIX環境ではSIGBUSのシグナルが送信される。 (ja)
dbo:wikiPageID
  • 731708 (xsd:integer)
dbo:wikiPageLength
  • 3949 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID
  • 80282542 (xsd:integer)
dbo:wikiPageWikiLink
prop-en:wikiPageUsesTemplate
dct:subject
rdfs:comment
  • バスエラー (英: bus error) とは、コンピュータなどのバスへのアクセスに、何らかの問題があるため、読み書きのリクエストに応じられない、といったようなエラーである。 要因はおおざっぱに、論理的なもの(ソフトウェア的なもの)と物理的なもの(ハードウェア的なもの)に分けられる。論理的なものとしては、セグメンテーション違反やアラインメント違反(後述の「不整列アクセス」)など、物理的なものとしては、コンピュータの検出した一般的なデバイスが故障することが原因でも起きることがあるほか、まれにコンピュータハードウェアが物理的に壊れたことを示すことがある。 いずれにしても、詳細や細かい分類の違いはハードウェアおよびオペレーティングシステムのアーキテクチャや実装によって異なる(場合によっては、プロセッサの提供元とオペレーティングシステムの提供元で違う用語を使っているようなこともあるだろう)。いくつかの例を詳解する。 バスエラーが発生すると、POSIX環境ではSIGBUSのシグナルが送信される。 (ja)
  • バスエラー (英: bus error) とは、コンピュータなどのバスへのアクセスに、何らかの問題があるため、読み書きのリクエストに応じられない、といったようなエラーである。 要因はおおざっぱに、論理的なもの(ソフトウェア的なもの)と物理的なもの(ハードウェア的なもの)に分けられる。論理的なものとしては、セグメンテーション違反やアラインメント違反(後述の「不整列アクセス」)など、物理的なものとしては、コンピュータの検出した一般的なデバイスが故障することが原因でも起きることがあるほか、まれにコンピュータハードウェアが物理的に壊れたことを示すことがある。 いずれにしても、詳細や細かい分類の違いはハードウェアおよびオペレーティングシステムのアーキテクチャや実装によって異なる(場合によっては、プロセッサの提供元とオペレーティングシステムの提供元で違う用語を使っているようなこともあるだろう)。いくつかの例を詳解する。 バスエラーが発生すると、POSIX環境ではSIGBUSのシグナルが送信される。 (ja)
rdfs:label
  • バスエラー (ja)
  • バスエラー (ja)
prov:wasDerivedFrom
foaf:isPrimaryTopicOf
is dbo:wikiPageRedirects of
is dbo:wikiPageWikiLink of
is owl:sameAs of
is foaf:primaryTopic of