'Our genuine ...' continued.
Posted: Sun Jun 20, 2010 7:14 pm
bob wrote
Moving to OpenChess is fine.
However, be aware that there are lots of issues with what you suggest. On a normal system, you can't do things like disable interrupts, since that is a privileged instruction. On the old DOS systems you could get away with it, but not today.
As far as consistency goes, there are several things you have to deal with. Each time you run your program, you _must_ get it loaded into the same set of real memory pages, in the same order. Otherwise cache/memory aliasing will be different, which changes the speed, and eliminates the consistency. I don't want to write code to take an executable and load it into memory, set up the virtual memory mapping tables, the protection, deal with the graphics hardware to display stuff, deal with low-level I/O stuff to read and write various devices to access disks, keyboard/screen, network interface, timer interrupt to maintain time, etc.
And even if I did all of that I do not believe it is possible to get consistent results down to searching exactly the same number of nodes in a specific interval of time. And if I can't get it _exact_ then there is no reason to do it since a single node will ultimately change the game somewhere most of the time.
This is a real challenge. And I do mean _real_ challenge.
I know that it would be the big task to do. In my past I wrote the OS in the assembler I8080 for the terminal od mainframe.
I do not intend to write the new OS and solve all mentioned problems. The good definition of the proper environment for the IT experiment is important factor. Why to deal with Unix, Windows multitasking ?
The limting problem to Dos is solving many tasks for me. Dos is not using the advanced instructions of the new processors but it shall run, I checked that with my colleagues. I can install pure Dos on the disk and SO shall run.
My problem is to check if the algorithm is deterministic , so I can use the limit of the memory to 640 kB even, limit the # table size and made it range permament . Lets say #table 64 kB one memory segment of I8086 family.
The main and most operations with disabled interrupts will be in the memory. That time will be counted for the time of 'thinking ' on move. Then the interrupts will be enabled, time counting stopped until next entry in disabled area.
It shall solve the time and memory allocation problems.
I think the time calculation for thinking on move is the main issue.
The isolation of period used for calculating of move not for i/o etc. it is the task.
If it can be solved in current (Unix,Linux,Win) environment it will be the best. May be the installation of additional timer, clock dedicated for that engine would be enough. It is possible for sure.
The specialized hardware chess devices shall be done on that way.
Rgds Hood
Moving to OpenChess is fine.
However, be aware that there are lots of issues with what you suggest. On a normal system, you can't do things like disable interrupts, since that is a privileged instruction. On the old DOS systems you could get away with it, but not today.
As far as consistency goes, there are several things you have to deal with. Each time you run your program, you _must_ get it loaded into the same set of real memory pages, in the same order. Otherwise cache/memory aliasing will be different, which changes the speed, and eliminates the consistency. I don't want to write code to take an executable and load it into memory, set up the virtual memory mapping tables, the protection, deal with the graphics hardware to display stuff, deal with low-level I/O stuff to read and write various devices to access disks, keyboard/screen, network interface, timer interrupt to maintain time, etc.
And even if I did all of that I do not believe it is possible to get consistent results down to searching exactly the same number of nodes in a specific interval of time. And if I can't get it _exact_ then there is no reason to do it since a single node will ultimately change the game somewhere most of the time.
This is a real challenge. And I do mean _real_ challenge.
I know that it would be the big task to do. In my past I wrote the OS in the assembler I8080 for the terminal od mainframe.
I do not intend to write the new OS and solve all mentioned problems. The good definition of the proper environment for the IT experiment is important factor. Why to deal with Unix, Windows multitasking ?
The limting problem to Dos is solving many tasks for me. Dos is not using the advanced instructions of the new processors but it shall run, I checked that with my colleagues. I can install pure Dos on the disk and SO shall run.
My problem is to check if the algorithm is deterministic , so I can use the limit of the memory to 640 kB even, limit the # table size and made it range permament . Lets say #table 64 kB one memory segment of I8086 family.
The main and most operations with disabled interrupts will be in the memory. That time will be counted for the time of 'thinking ' on move. Then the interrupts will be enabled, time counting stopped until next entry in disabled area.
It shall solve the time and memory allocation problems.
I think the time calculation for thinking on move is the main issue.
The isolation of period used for calculating of move not for i/o etc. it is the task.
If it can be solved in current (Unix,Linux,Win) environment it will be the best. May be the installation of additional timer, clock dedicated for that engine would be enough. It is possible for sure.
The specialized hardware chess devices shall be done on that way.
Rgds Hood