Faits: A. A._, ressortissant albanais, se trouve en détention préventive depuis le 10 juin 2009, date à laquelle le Juge d'instruction du canton de Genève (ci-après: le Juge d'instruction) l'a inculpé d'infractions graves à la loi fédérale du 3 octobre 1951 sur les stupéfiants et les substances psychotropes (LStup; RS 812.121). Il lui est notamment reproché d'avoir participé avec des comparses à l'importation à Genève de 12 kilos de produits de coupage destinés à être mélangés à de l'héroïne et d'avoir été en possession, le 9 juin 2009, d'un kilo d'héroïne. Le 26 mars 2010, la Chambre d'accusation de la Cour de justice du canton de Genève (ci-après: la Chambre d'accusation) a renvoyé A._ en jugement devant la Cour d'assises pour infractions graves à la LStup. L'audience de jugement a été fixée dans la semaine du 29 novembre 2010. B. Par ordonnance du 8 juin 2010, la Chambre d'accusation a prolongé la détention préventive du prénommé pour une durée de trois mois, A._ s'en étant rapporté à justice. Le 16 août 2010, le prévenu a formé une demande de mise en liberté provisoire, que la Chambre d'accusation a rejetée par ordonnance du 20 août 2010. L'instance cantonale a considéré en substance que les principes de la célérité et de la proportionnalité étaient respectés, compte tenu de la gravité des infractions reprochées et de la durée de la détention préventive. C. Agissant par la voie du recours en matière pénale, A._ demande au Tribunal fédéral d'annuler l'ordonnance attaquée et de prononcer sa mise en liberté immédiate. Il conclut subsidiairement au renvoi de la cause à l'autorité précédente pour nouvelle décision au sens des considérants, cas échéant en enjoignant les autorités genevoises à le juger dans les plus brefs délais. Il requiert en outre l'assistance judiciaire. Le Ministère public du canton de Genève conclut au rejet du recours. La Chambre d'accusation se réfère aux considérants de sa décision. Le recourant a répliqué.