The move generator, a combinational logic 8x8 array is effectively a silicon chessboard in VLSI design. The basic move generation algorithm is the same as in the Bellemove generator, where a disable-stack implements the bookkeeping of victims and per victim, of aggressors. In ChipTest and its successors, the last move searched from the position, which need to be stored for unmake move anyway, implies the priority levels of the last victim and the last attacking piece is used for the sequential logic to compute the disable-mask on the fly, using distinct square priorities to discriminate equal valued victims and aggressors [5][6].
disable =0;while(( to = findMVV(disable))>=0){while(( from = findLVA(disable))>=0){
make(from, to);
....
unmake(from, to);
disable = allLessAndEqualValuableAttackers(from);}
disable = allMoreAndEqualValuableVictims(to);}
In software, the cost of recomputing the mask exceeds the cost of retrieving it. But in hardware, the reverse holds true. The disable-stack needs decoders to operate anyway. The modified decoder operates at a speed comparable to the disable-stack decoders and takes less space. This method avoids using the disable-stack, which probably needs to be at least 64 levels deep.
Table of Contents
ChipTest was a chess program running on a Sun-3 workstation using a high speed move generator in hardware. It was the predecessor of Deep Thought, later emerged to Deep Blue. The project started in 1985 by two students at Carnegie Mellon University, Feng-hsiung Hsu who did the chip design of the move generator [1], and Thomas Anantharaman. Later in 1986 they were joined by former HiTech member Murray Campbell. ChipTest played two ACM North American Computer Chess Championships, ACM 1986 and ACM 1987, and it won the latter with a perfect score. At ACM 1986, ChipTest searched about 100K positions per second [2], in 1987 500K [3], already employing singular extensions [4].
Move Generation
The move generator, a combinational logic 8x8 array is effectively a silicon chessboard in VLSI design. The basic move generation algorithm is the same as in the Belle move generator, where a disable-stack implements the bookkeeping of victims and per victim, of aggressors. In ChipTest and its successors, the last move searched from the position, which need to be stored for unmake move anyway, implies the priority levels of the last victim and the last attacking piece is used for the sequential logic to compute the disable-mask on the fly, using distinct square priorities to discriminate equal valued victims and aggressors [5] [6].In software, the cost of recomputing the mask exceeds the cost of retrieving it. But in hardware, the reverse holds true. The disable-stack needs decoders to operate anyway. The modified decoder operates at a speed comparable to the disable-stack decoders and takes less space. This method avoids using the disable-stack, which probably needs to be at least 64 levels deep.
Evaluation
While features such as material, piece placement, and some pawn structures are easier to evaluate in an incremental way, certain more subtle features require a whole board approach to do the evaluation in hardware - aggregated square control aka mobility of a Chess 4.5 like approach [7], and pins [8].Selected Games
Bebe
ACM 1986, round 1, Bebe - ChipTest [9]Cray Blitz
ACM 1987, round 3, Cray Blitz - Chiptest M [10]Sun Phoenix
ACM 1987, round 4, Chiptest M - Sun Phoenix [11]See also
Publications
External Links
References
What links here?
Up one Level