比特板

编辑
本词条由“匿名用户” 建档。
比特板是一种专门的比特数组数据结构,通常用于玩棋盘游戏的计算机系统,其中每个比特对应一个棋盘空间或棋子。这允许并行的位操作来设置或查询游戏状态,或确定游戏中的动作或玩法。同一个比特板中的比特通过游戏规则相互关联,在一起时往往形成一个游戏位置。其他比特板通常被用作掩码,以转换或回答关于位置的查询。比特板是一种比传统的邮箱表示法更有效的棋盘表示法,其中棋盘上的每个棋子或空间是一个数组元素。当棋盘上...

比特板

编辑

比特板是一种专门的比特数组数据结构,通常用于玩棋盘游戏计算机系统,其中每个比特对应一个棋盘空间或棋子。这允许并行的位操作来设置或查询游戏状态,或确定游戏中的动作或xxx。同一个比特板中的比特通过游戏规则相互关联,在一起时往往形成一个游戏位置。其他比特板通常被用作掩码,以转换或回答关于位置的查询。比特板是一种比传统的邮箱表示法更有效的棋盘表示法,其中棋盘上的每个棋子或空间是一个数组元素。当棋盘上各种相关状态的相关位适合于CPU架构的单字或双字时,位板就特别有效,这样就可以用AND和OR这样的单位运算符来建立或查询游戏状态。在使用比特板的计算机游戏实现中,有国际象棋、跳棋、黑白棋和文字游戏。该方案于20世纪50年代首次在跳棋程序中使用,自70年代中期以来一直是计算机自动机中游戏板表示法的实际标准。每个比特代表一个空间;当比特为正时,该空间的一个属性为真。位板允许计算机用一个位操作来回答一些关于游戏状态的问题。如果没有中心棋子,那么结果将是所有零位(即等于零)。多个比特板可以代表棋盘上空间的不同属性,特殊的或临时的比特板(像临时变量)可以代表局部属性或保持中间的整理结果。比特板的功效被实现的另外两个特性所增强。首先,位板可以快速地进行增量更新,比如当一个棋子被移动时,在位板中翻转棋子位置的源位置和目的位置的位。其次,代表静态属性的位图,如棋盘上每个位置的每个棋子类型所攻击的所有空间,可以预先整理并存储在一个表中,这样,回答一个问题,如马在e4空间的合法棋步是什么?可以通过一次内存获取来回答。位域的实现利用了现代CPU架构上存在的全字(32位或64位)位逻辑运算,如AND、OR、NOT等,以达到高效。在早期的8位和16位微型计算机和微处理器架构上,位板可能并不有效。

实施问题

编辑

由于对大量表格的内容进行必要的压缩和编码,以及转录或编码错误的可能性,位板程序对软件开发者来说,无论是编写还是调试都很繁琐。通常需要不属于应用程序的辅助生成方法来建立表格。

处理器使用前景

编辑

Bitboard表示使用几乎所有CPU上都有的并行位操作,这些操作在一个周期内完成,并且是完全流水线和缓存的等等。几乎所有的CPU都有AND、OR、NOR和XOR。此外,现代CPU有指令流水线,可以排队执行指令。如果流水线上有多条指令,一个有多个执行单元的处理器可以在每个周期执行多条指令。

比特数组

如果错误地预测了一个分支,带有分支的正常指令序列可能导致流水线清空。许多位板操作需要较少的条件,因此增加了流水线,并在许多CPU上有效地利用了多个执行单元。CPU有其设计的位宽,在这个位宽的一个周期内可以进行位板操作。因此,在一个64位或更多的CPU上,64位的操作可以在一条指令中发生。可能会有对更高或更低宽度指令的支持。许多32位CPU可能有一些64位指令,这些指令可能需要一个以上的周期,或者与它们的32位指令相比有障碍。如果比特板大于指令集的宽度,就需要多条指令对其进行全宽的操作。因此,一个使用64位位板的程序在64位处理器上的运行速度会比32位处理器快。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/174739/

(1)
词条目录
  1. 比特板
  2. 实施问题
  3. 处理器使用前景

轻触这里

关闭目录

目录