Patent Document ID: 20100312995
Application ID: 12797416
Patent Flag: 0

Claim One:
1. A method for simulating a virtual world by utilizing a parallel co-processor with a dedicated memory, comprising: performing a parallel logic processing by said parallel co-processor, wherein said performing said parallel logic processing comprises: performing a count phase, wherein said performing said counting phase comprises: determining a first plurality of update counts for a plurality of threads in a counting phase by said parallel co-processor; storing said first plurality of update counts into said dedicated memory; and allocating a memory block from said dedicated memory according to said first plurality of update counts for storing said plurality of update vectors without any memory conflict; performing a storing phase, wherein said performing said storing phase comprises: writing updates into said memory block; performing a parallel conflict merge by said parallel co-processor, wherein said performing said parallel conflict merge comprises: generating a sorted list from said first plurality of update vectors; generating a first separation list from said sorted list; generating a first store indices list; generating a merge list based on said first separation list and said first store indices list; and performing parallel merge based on said merge list; performing a parallel range query by said parallel co-processor, wherein said performing said parallel range query comprises: calculating a plurality of affected buckets based on a second plurality of update vectors, wherein said virtual world is divided into a plurality of buckets, each bucket is a square or a cube with an edge length equal to a visibility range, and each of said plurality of affected buckets is within said visibility range from any of said second plurality of update vectors; generating a second separation list from said plurality of affected buckets; generating a second store indices list; determining a second plurality of update counts based on said plurality of affected buckets; allocating a second memory block from said dedicated memory according to said second plurality of update counts for storing said plurality of affected buckets.