In large-scale RFID systems, all of the communications between readers and tags are via a shared wireless channel. When a reader intends to collect all IDs from numerous existing tags, a tag identification process is invoked by the reader to collect the tags' IDs. This phenomenon results in tag-to-reader signal collisions which may suppress the system performance greatly. To solve this problem, we design an efficient tag identification protocol in which a significant gain is obtained in terms of both identification delay and communication overhead. A k-ary tree-based abstract is adopted in our proposed tag identification protocol as underlying architecture for collision resolution. Instead of just recognizing whether tag collision happens at each interrogation time period, the reader can further obtain the reason of why the collision occurs in the current tag inquiry operation. With this valuable information, we can reduce tag signal collisions significantly and at the same time avoid all of the tag idle scenarios during a tag identification session. The rigorous performance analysis and evaluation show that our proposed tag identification protocol outperforms existing tree-based schemes.